وعليكم السلام ورحمة الله وبركاته
هذا مثال
وتقوم بوضع الأمر في بداية الداله OnTick في الإكسبرتكود PHP:
if(StringToTime("2017.08.01")<TimeCurrent())
{
Alert("EA Expired");
return(0);
}
Printable View
وعليكم السلام ورحمة الله وبركاته
تفضل هذا مثال
كود PHP:
for(int i=500;i>0;i--)
{
double high=High[i];
for(int j=i;j>0;j--)
{
double low=Low[i];
if(high-low>=100*Point)
{
Print("Difference between candle: "+i+" and candle: "+j+" is 100 Pips");
i=j;
break;
}
}
}
تفضل هذا الكود أسهل
أيضا الأفضل عند وضع شرط فتح الصفقة أن لا تجعل المقارنه ب == لأنه قد يحدث قفزات في السعر فمثلا يكون السعر 1.2052 ثم يصبح 1.2049 وهكذا بالتالي سوف يمر على 50 بدون أن تفتح الصفقهكود PHP:
double FixedPrice=NormalizeDouble(Bid,digits-2)+50*point;
if(Bid==FixedPrice)
{
// open sell
}
لذلك أفضل أن أستخدم رينج معين للمقارنه ويمكنك تحديد عدد نقاط الرينج حسب ما تريد
مثال
كود PHP:
if(MathAbs(Bid-FixedPrice)<=2*point)
{
// open sell
}
مساء النور مشرفنا العزيز مستر دولار
عندي استفسار عن ما هو الفرق الدقيق بين TrailingStep and TrailingStop
والله انا ملخبط كثير بينهم ويا ليت الله يعطيك الف عافية توضيح كيف سيعمل الاكسبيرت لو وضعنا الاعدادت كما يلي:
TrailingStop = 20
TrailingStep = 10
------------------------------
TrailingStop = 20
TrailingStep = 0
------------------------------
TrailingStop = 0
TrailingStep = 20
------------------------------
TrailingStop = 10
TrailingStep = 20
------------------------------
عذرا على الاطالة بس ملخبط وحاب افهما كويس، وشكرا لك مقدما اخينا الغالي
السلام عليكم اخي اسامة اشكرك على اهتمامك
الكود اريد فيه اضافة بسيطة ... لما يصل للستيب ولتكن 100 نقطة ... يبدئ من جديد من اعلى نقطة وليس من نفس النقطة ... كما هو موضح بالصورة
في الكود اعلاه اللي حضرتك وضعته يبدئ من جديد من الشمعة j ما اريده هو ان يبدئ من اعلى نقطة بعد المتغير j وهكذاكود PHP:
for(int i=500;i>0;i--)
{
double high=High[i];
for(int j=i;j>0;j--)
{
double low=Low[i];
if(high-low>=100*Point)
{
Print("Difference between candle: "+i+" and candle: "+j+" is 100 Pips");
i=j;
break;
}
}
}
وشكرا جزيلا لك اخي الكريم
وعليكم السلام ورحمة الله وبركاته
هذا مثال
كود PHP:
for(int i=500;i>0;i--)
{
static double max_high;
if(High[i]>max_high)max_high=High[i];
for(int j=i;j>0;j--)
{
double low=Low[i];
if(max_high-low>=100*Point)
{
Print("Difference between candle: "+i+" and candle: "+j+" is 100 Pips");
i=j;
max_high=0;
break;
}
}
}
السلام عليكم ورحمة الله وبركاتة
استاذ أسامة : اريد أن أضع مؤشر على شارت لكن يعمل على عملة اخرى بمعنى عندما أضعة على شارت اليورو دولار يعمل المؤشر من بيانات الفرنك
وحاولت ان اضيف دالة "input string Currency1 = "USDCHF لكن لا يوجد فى المؤشر()Symbol . لكى تحل محلها
ارجوا ان تتفضل على كيف احل هذة المشكلة .
أشكرك أستاذ أسامة لسرعة ردك وأذا امكن أن توضح لى كيف على الكود المرفق
وشكرا لك أستاذناكود:#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime
//---- buffers
double Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//|------------------------------------------------------------------|
int init()
{
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0, Buffer1);
IndicatorShortName("Positive Volume Index (PVI)");
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int pos=Bars-100;
double vol0, vol1;
double PVI=1;
double close0,close1;
while(pos>=0)
{
vol1=Volume[pos+1];
vol0=Volume[pos];
close1=Close[pos+1];
close0=Close[pos];
if (vol0>vol1) PVI=PVI+((close0-close1)/(close1*PVI));
if (vol0<=vol1) PVI=PVI ;
Buffer1[pos]=PVI;
pos--;
}
return(0);
}
تفضل
كود PHP:
int start()
{
int pos=iBars(Symbol(),0)-100;
double vol0, vol1;
double PVI=1;
double close0,close1;
while(pos>=0)
{
vol1=iVolume(Symbol(),0,pos+1);
vol0=iVolume(Symbol(),0,pos);
close1=iClose(Symbol(),0,pos+1);
close0=iClose(Symbol(),0,pos);
if (vol0>vol1) PVI=PVI+((close0-close1)/(close1*PVI));
if (vol0<=vol1) PVI=PVI ;
Buffer1[pos]=PVI;
pos--;
}
return(0);
}