مؤشر ماس الإصدار الثاني.. جربوه..
بسم الله الرحمن الرحيم
كنت قد نشرت الإصدار الأول من هذا المؤشر منذ عدة شهور.. ولاقى استحساناً خصوصاً من مستر دولار.. الآن أنا أنشر الإصدار الثاني الذي به الكثير من التحسينات.. أسألكم الدعاء لأني أحتاجه بشدة..
في انتظار أي سؤال بخصوص المؤشر.. وسأكون سعيد بأي اقتراحات للتطوير..
كود:
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Gold
#property indicator_width1 4
#property indicator_color2 Red
#property indicator_width2 1
#property indicator_level1 0
extern int MASp=9;
extern int MASsp=9;
extern int MASmm=3;
extern int MASsmm=3;
extern double OW=1;
extern double HW=2.5;
extern double LW=2.5;
extern double CW=4;
double X[];
double Y[];
bool B=false;
//---
bool S=false;
//---
bool CB=false;
//---
bool CS=false;
//---
bool B2=false;
//---
bool S2=false;
int init()
{
SetIndexBuffer(0,X);
SetIndexBuffer(1,Y);
SetIndexStyle(0,2);
SetIndexStyle(1,0);
SetIndexDrawBegin(1,MASsp);
IndicatorDigits(Digits+1);
IndicatorShortName("MAS("+MASp+","+MASsp+") with Alert =");
return(0);
}
int start()
{
int limit;
int counted_bars=IndicatorCounted();
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0;i<limit;i++)
{
X[i] = (((iMA(Symbol(),0,MASp,0,MASmm,0,i)*CW + iMA(Symbol(),0,MASp,0,MASmm,1,i)*OW + iMA(Symbol(),0,MASp,0,MASmm,2,i)*HW + iMA(Symbol(),0,MASp,0,MASmm,3,i)*LW)/(CW+OW+HW+LW))
- ((iMA(Symbol(),0,MASp,0,MASmm,0,i+1)*CW + iMA(Symbol(),0,MASp,0,MASmm,1,i+1)*OW + iMA(Symbol(),0,MASp,0,MASmm,2,i+1)*HW + iMA(Symbol(),0,MASp,0,MASmm,3,i+1)*LW)/(CW+OW+HW+LW)))/Point;
}
for(i=0;i<limit;i++)
{
Y[i] = iMAOnArray(X,Bars,MASsp,0,MASsmm,i);
}
//------------------------------------------------------------------------------------------------------------------------------//
if ( (X[0]>0) && !(X[1]>0) && B==false)
{
Alert( "MAS: BUY " , Symbol());
B=true;
}
if (B==true && !(X[0]>0) )
{
Alert( "MAS: DONT BUY " , Symbol());
B=false;
}
//------------------------------------------------------------------------------------------------------------------------------//
if ( (X[0]<0) && !(X[1]<0) && S==false)
{
Alert( "MAS: SELL " , Symbol());
S=true;
}
if (S==true && !(X[0]<0) )
{
Alert( "MAS: DONT SELL " , Symbol());
S=false;
}
//------------------------------------------------------------------------------------------------------------------------------//
if ( (X[0]>0) && (X[0]<Y[0]) && !(X[1]<Y[1]) && CB==false)
{
Alert( "MAS: CLOSE BUY " , Symbol());
CB=true;
}
if (CB==true && !(X[0]<Y[0]) )
{
Alert( "MAS: DONT CLOSE BUY " , Symbol());
CB=false;
}
//------------------------------------------------------------------------------------------------------------------------------//
if ( (X[0]<0) && (X[0]>Y[0]) && !(X[1]>Y[1]) && CS==false)
{
Alert( "MAS: CLOSE SELL " , Symbol());
CS=true;
}
if (CS==true && !(X[0]>Y[0]) )
{
Alert( "MAS: DONT CLOSE SELL " , Symbol());
CS=false;
}
//------------------------------------------------------------------------------------------------------------------------------//
if ( (X[0]<0) && (X[0]<Y[0]) && !(X[1]<Y[1]) && S2==false)
{
Alert( "MAS: SELL AGAIN " , Symbol());
S2=true;
}
if (S2==true && !(X[0]<Y[0]) )
{
Alert( "MAS: DONT SELL AGAIN " , Symbol());
S2=false;
}
//------------------------------------------------------------------------------------------------------------------------------//
if ( (X[0]>0) && (X[0]>Y[0]) && !(X[1]>Y[1]) && B2==false)
{
Alert( "MAS: BUY AGAIN " , Symbol());
B2=true;
}
if (B2==true && !(X[0]>Y[0]) )
{
Alert( "MAS: DONT BUY AGAIN " , Symbol());
B2=false;
}
return(0);
}
1 مرفق
رد:مؤشر ماس الإصدار الثاني.. جربوه..
اقتباس:
المشاركة الأصلية كتبت بواسطة f_fahd
ممكن اخى الفاضل المؤشر بالصيغة التى يوضع بها فى الميتاتريدر
على طول والله يسهل لك امورك جميعها ولك جزيل الشكر
----------------------
والشكر للأخ طارق
الله يكرمك ويقويك
--------
وياريت يا أخي لو تكرمت شرح المؤشر ومدخلاته
رد:مؤشر ماس الإصدار الثاني.. جربوه..
بسم الله الرحمن الرحيم
اقتباس:
وياريت يا أخي لو تكرمت شرح المؤشر ومدخلاته
هذا من دواعي سروري أيها الأخ xcv114.. أشكر لك بشدة تفاعلك السريع ومساعداتك السريعة..
المؤشر بسيط وفكرته بسيطة.. هو يقيس ميل خط المتوسط المتحرك.. فإذا تحول الميل من السالب إلى الموجب فهذه إشارة شراء.. وإذا تحول من الموجب إلى السالب فهذه إشارة بيع.. وبإضافة خط إشارة لخط الميل تتكون عندنا إشارات خروج.. فعندما يقل الميل الموجب عن خط الإشارة تعتبر هذه إشارة خروج من الشراء.. وعندما يزيد الميل السالب فوق خط الإشارة تعتبر هذه إشارة خروج من البيع..
هذه هي أبسط صورة لكود المؤشر..
كود:
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Gold
#property indicator_width1 4
#property indicator_color2 Red
#property indicator_width2 1
#property indicator_level1 0
extern int MASp=9;
extern int MASsp=9;
extern int MASmm=3;
extern int MASsmm=3;
extern int MASap=0;
double X[];
double Y[];
int init()
{
SetIndexBuffer(0,X);
SetIndexBuffer(1,Y);
SetIndexStyle(0,2);
SetIndexStyle(1,0);
SetIndexDrawBegin(1,MASsp);
IndicatorDigits(Digits+1);
IndicatorShortName("MAS("+MASp+","+MASsp+") with Alert =");
return(0);
}
int start()
{
int limit;
int counted_bars=IndicatorCounted();
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0;i<limit;i++)
{
X[i] = iMA(Symbol(),0,MASp,0,MASmm,MASap,i) - iMA(Symbol(),0,MASp,0,MASmm,MASap,i+1);
}
for(i=0;i<limit;i++)
{
Y[i] = iMAOnArray(X,Bars,MASsp,0,MASsmm,i);
}
return(0);
}
ميل خط المتوسط المتحرك = قيمته على الشمعة الحالية - قيمته علي الشمعة السابقة
الخط الذهبي العمودي يمثل الميل.. والخط الأحمر يمثل خط الإشارة على هذا الميل..
رد:مؤشر ماس الإصدار الثاني.. جربوه..
بمرور الوقت فكرت في ابتكار سعر جديد لا يوفره برنامج ميتاترايدر.. السعر هو عبارة عن متوسط حسابي بسيط لأسعار الشمعة الأربعة..
السعر الجديد = (الفتح + الأعلى + الأدني + الإغلاق)÷ 4
وبما أن المتوسط البسيط هو حالة خاصة من المتوسط الخطي المرجح فكرت في استعمال متوسط خطي مرجح لأسعار الشمعة الأربع.. وبالتالي تصبح المعادلة..
السعر الجديد = (الفتح×وزن الفتح + الأعلى×وزن الأعلى + الأدني×وزن الأدني + الإغلاق×وزن الإغلاق) ÷ (وزن الفتح + وزن الأعلى + وزن الأدني + وزن الإغلاق)
وبما أننا نعلم يقيناً أن سعر الفتح هو أول سعر يتكون في الشمعة أعطيته الوزن 1.. ولكننا لا نعلم يقيناً أيهما يحدث أولاً السعر الأعلى أم السعر الأدني لذلك أعطيتهما معاً الوزن 2.5.. وسعر الإغلاق الأخير يكون له الوزن 4.. ويكون مجموع الأوزان 10..
1+2+3+4=10
1+2.5+2.5+4=10
رد:مؤشر ماس الإصدار الثاني.. جربوه..
مثلاُ الكود التالي يقوم برسم متوسط متحرك بالسعر الجديد..
كود:
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Gold
extern int MAp=12;
extern int MAmm=3;
extern double OW=1;
extern double HW=2.5;
extern double LW=2.5;
extern double CW=4;
double X[];
int init()
{
SetIndexBuffer(0,X);
SetIndexStyle(0,0);
SetIndexDrawBegin(1,1);
IndicatorDigits(Digits+1);
return(0);
}
int start()
{
int limit;
int counted_bars=IndicatorCounted();
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0;i<limit;i++)
{
X[i] = (iMA(Symbol(),0,MAp,0,MAmm,0,i)*CW + iMA(Symbol(),0,MAp,0,MAmm,1,i)*OW + iMA(Symbol(),0,MAp,0,MAmm,2,i)*HW + iMA(Symbol(),0,MAp,0,MAmm,3,i)*LW)/(CW+OW+HW+LW);
}
return(0);
}