مشاهدة النسخة كاملة : ورشة برمجة مؤشر بافكار متجددة
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
بارك الله فيك اخ موفينج مجهود رائع وياريت وضع المؤشرات بعد الانتهاء من برمجتها لتكون متاحه للتحميل
NTTnightmare
11-03-2013, 02:37 AM
مجهود رائع أخي موفنغ مازلت لم تقم بإعداد سيل لوفيل للمؤشر
vBulletin® v3.8.8