المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : ورشة برمجة مؤشر بافكار متجددة


MOVING_AVERAGE
08-03-2013, 01:02 PM
في هذا الموضوع ان شاء الله سنحاول برمجة مؤشر وفي نفس الوقت التدريب علي البرمجة

لافكار عديدة ومتداخلة

حيث سنضع عدة شروط لعدة مؤشرات نري ان الاشارة تكون قوية علي حسبها

مرحبا بكل الافكار

MOVING_AVERAGE
08-03-2013, 01:06 PM
نبدء علي بركة الله باول اشارت لمؤشر RSI

وهي اشارة قوية ويحترمها السعر

سنستخدم اشرات RSI كالتالي فوق 50 اشارة Buy خضراء

تحت 50 اشارة sell حمراء

سنستخدم في هذا المؤشر نافذة مستقلة

ونرسم عليها خطوط هستوغرام

MOVING_AVERAGE
08-03-2013, 01:13 PM
سنستخدم القالب الجاهز الذي شرحناه من قبل


//+------------------------------------------------------------------+
//| arabia.mq4 |
//| Copyright 2013, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

#property indicator_separate_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int x,i;
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
x=Bars-counted_bars;

for(i =0 ; i<x ; i++)
{



}

return(0);
}
//+------------------------------------------------------------------+



وكما نلاحظ غير هذه الكتابة ليضهر المؤشر في نافذة مستقلة


#property indicator_separate_window

MOVING_AVERAGE
08-03-2013, 01:15 PM
الان اعداد بارات الهيستوغرام كالتالي

abduul
08-03-2013, 02:03 PM
بارك الله فيك أستاد موفينج , تسجيل متابعة , و أحلى لايك :1 (105):

Mohamed_Amr
08-03-2013, 02:05 PM
بارك الله فيك تسجيل متابعه
لانى من عشاق rsi ولكن استخدمه بشكل مختلف
وبالتوفيق

MOVING_AVERAGE
08-03-2013, 02:43 PM
في البداية سنستخدم بارين بلونين فقط

وعند ضهور اشرات اخري سنضيف برات اخري

التصريح بالبارات


#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Green


double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_HISTOGRAM,0,3);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM,0,3);
SetIndexBuffer(1,ExtMapBuffer2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int x,i;
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
x=Bars-counted_bars;

for(i =0 ; i<x ; i++)
{



}

return(0);
}
//+------------------------------------------------------------------+

MOVING_AVERAGE
08-03-2013, 02:44 PM
جعل المؤشر اكثر مرونة

باستخدام مستوي خاص ب buy

ومستوي خاص ب sell

MOVING_AVERAGE
08-03-2013, 02:47 PM
التصريح بالمستوي خارج الدالة start


extern int RSI_buy_level=50;
extern int RSI_sell_level=50;


والكود لحد الان هو


#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Green


double ExtMapBuffer1[];
double ExtMapBuffer2[];

extern int RSI_buy_level=50;
extern int RSI_sell_level=50;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_HISTOGRAM,0,3);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM,0,3);
SetIndexBuffer(1,ExtMapBuffer2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int x,i;
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
x=Bars-counted_bars;

for(i =0 ; i<x ; i++)
{



}

return(0);
}
//+------------------------------------------------------------------+

MOVING_AVERAGE
08-03-2013, 02:48 PM
جعل RSI اكثر مرونة وذلك بتمكين المستخدم من تغير اعددات RSI

Mohamed_Amr
08-03-2013, 02:54 PM
جعل RSI اكثر مرونة وذلك بتمكين المستخدم من تغير اعددات RSI

اتمنى جعله اكثر ملونه خصوصا بعكس العمليه يعنى ممكن عند مستوى 75 يعطينى اشارة شراء
وايضا عند مستوى 25 يعطينى اشارة بيع
هل ممكن عمل rsi لعمله فقط مثل الين لقياس مستوى الار اس مقابل جميع العملات؟؟
وبالتوفيق استاذنا الحبيب

MOVING_AVERAGE
08-03-2013, 02:55 PM
نضيف هذه الكتابة خارج الدالة start

لجعل rsi اكثر مرونة


extern string l="_______level-RSI_______";
extern int RSI_buy_level=50;
extern int RSI_sell_level=50;
extern string m="_______Parameters-RSI_______";
extern int period_RSI=14;
extern int applied_price_RSI=0;

MOVING_AVERAGE
08-03-2013, 02:56 PM
اتمنى جعله اكثر ملونه خصوصا بعكس العمليه يعنى ممكن عند مستوى 75 يعطينى اشارة شراء
وايضا عند مستوى 25 يعطينى اشارة بيع
هل ممكن عمل rsi لعمله فقط مثل الين لقياس مستوى الار اس مقابل جميع العملات؟؟
وبالتوفيق استاذنا الحبيب


لا تستعجل اخي

Mohamed_Amr
08-03-2013, 02:59 PM
لا تستعجل اخي

تمام استاذنا الحبيب عند الانتهاء نتناقش ان شاء الله
ولك رساله على الخاص
تحياتى

MOVING_AVERAGE
08-03-2013, 03:09 PM
الان نكتب rsi داخل الدالة start

في الحلقة التكرارية

ونضيف خيار استخدام RSI لعملة اخري رغم ان هذا الخيار لن استخدمه في المؤشر

MOVING_AVERAGE
08-03-2013, 03:17 PM
سيتم التصريح با RSi كالتالي


double rsi=iRSI(symbol,0,14,0,i);


حيث


symbol


سنجعله متغير خارجي نضع فيه اي شارت نريد اضهار RSI له

MOVING_AVERAGE
08-03-2013, 03:20 PM
التصريح باسم الشارت


extern string symbol=" ";


وضعنا اسم الشارد تلقائيا فارغ

ماذا سيعمل المؤشر في هذه الحالة

سنضيف دالة مقارنة نقول للمؤشر اذا وجدت اسم الشارت فارغ استخدم اسم الشارت الذي يوضع عليه المؤشر


if(symbol==" ")
{
symbol=Symbol();
}

MOVING_AVERAGE
08-03-2013, 03:24 PM
الي هنا قمنا باضافة كل الاعددات التي نحتاجها لاستعمال RSI

ملاحضة لكي نجعل RSI متعدد الوقت فيه اضفات كثيرة يطول شرحها لذا لن نتطرق الي هذه النقطة


#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Green


double ExtMapBuffer1[];
double ExtMapBuffer2[];

extern string l="_______level-RSI_______";
extern int RSI_buy_level=50;
extern int RSI_sell_level=50;
extern string m="_______Parameters-RSI_______";
extern int period_RSI=14;
extern int applied_price_RSI=0;
extern string symbol=" ";
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_HISTOGRAM,0,3);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM,0,3);
SetIndexBuffer(1,ExtMapBuffer2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int x,i;
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
x=Bars-counted_bars;
if(symbol==" ")
{
symbol=Symbol();
}
for(i =x ; i>=0 ; i--)
{

double rsi=iRSI(symbol,0,14,0,i);



}

return(0);
}
//+------------------------------------------------------------------+

MOVING_AVERAGE
08-03-2013, 03:35 PM
الان نضيف الشروط

وبعد الشروط نضع الهيستوغرام كما شرحنا في دورة البرمجة


#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Green


double ExtMapBuffer1[];
double ExtMapBuffer2[];

extern int Shift=0;

extern string l="_______level-RSI_______";
extern int RSI_buy_level=50;
extern int RSI_sell_level=50;
extern string m="_______Parameters-RSI_______";
extern int period_RSI=14;
extern int applied_price_RSI=0;
extern string symbol=" ";
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_HISTOGRAM,0,3);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM,0,3);
SetIndexBuffer(1,ExtMapBuffer2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int x,i;
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
x=Bars-counted_bars;
if(symbol==" ")
{
symbol=Symbol();
}
for(i =x ; i>=0 ; i--)
{
int shift1=i+Shift;
double rsi=iRSI(symbol,0,14,0,shift1);
if(rsi>RSI_buy_level)
{
ExtMapBuffer1[i]=0;
ExtMapBuffer2[i]=rsi;
}

if(rsi<RSI_buy_level)
{
ExtMapBuffer1[i]=rsi;
ExtMapBuffer2[i]=0;
}


}

return(0);
}
//+------------------------------------------------------------------+


وهكذا نكون انتهينا من اشرات RSI

وان شاء الله سنضيف اشرات اخري لكي يصبح المؤشر اقوي

MOVING_AVERAGE
08-03-2013, 03:37 PM
فيه شئ غير مدروس في المؤشر انا لم ارد الاشارت اليه

في انتضار من يجده لكي نصححه

Mohamed_Amr
08-03-2013, 03:39 PM
ممكن توضيح هذة النقطه اخى موفنج
ملاحضة لكي نجعل RSI متعدد الوقت فيه اضفات كثيرة يطول شرحها لذا لن نتطرق الي هذه النقطة
والله ينور عليك

MOVING_AVERAGE
08-03-2013, 03:41 PM
ممكن توضيح هذة النقطه اخى موفنج
ملاحضة لكي نجعل RSI متعدد الوقت فيه اضفات كثيرة يطول شرحها لذا لن نتطرق الي هذه النقطة
والله ينور عليك


اقصد طريقة جعل المؤشر MTF

هيثم
10-03-2013, 12:21 AM
بارك الله فيك اخ موفينج مجهود رائع وياريت وضع المؤشرات بعد الانتهاء من برمجتها لتكون متاحه للتحميل

NTTnightmare
11-03-2013, 02:37 AM
مجهود رائع أخي موفنغ مازلت لم تقم بإعداد سيل لوفيل للمؤشر