النتائج 1 إلى 4 من 4
- 01-08-2017, 03:36 PM #1
كود تحديد حركة السعر داخل شموع الفريمات الأكبر
السلام عليكم اخي اسامة
هل يمكن ان احدد على شمعة الاربع ساعات او الديلي هاي او للو شمعة الدقيقة ايهما سبق ...
يعني لدي شمعة للاربع ساعات نازلة ويكون السعر صعد اولا ثم نزل كيف اعرف دلك ... اقصد برمجيا
-------
نحتاج هذا الكود كثيرا في الباكتستر الفوري اذا لزم الأمر, خصوصا لأوامر محددة الأهداف والتي دخولها وةالخورج منها على نفس شمعة الديلي مثلاً,
لذا نعزله في موضوع مستقل,
سيكون اسمه كبرنامج quasi_search.mq4
الخوارزم كتابة:
1) تسجل تاريخ بدء الشمعة على الاربع ساعات
2) تسجيل تاريخ نهاية الشمعة (يعني بدء الشمعة بعدها)
فهذا جسد شمعة الاربع ساعات زمنيا
3) تذهب الى فريم 1 دقيقة
4) تحول تاريخ البدء الى رقم البارة
5) تحاول تاريخ النهاية الى رقم بارة
فيصبح لديك رقمين
5) تستخدم دوال اكتشاف الهاي او اللو بين الرقمين
-
6) رقم بارة الهاي و بارة اللو -- تقارن بينهم ومنها تعرف ايهما سبق.
------------
الكود (دون اخطاء)
كود PHP:int OnInit()
{
EventSetTimer(1);
return(INIT_SUCCEEDED);
}
double high;
double low;;
void OnTimer()
{
int j = bar_1M_Frame_Start;
int k = bar_1M_Frame_E_N_D;
high = iHigh(NULL, PERIOD_M1, bar_1M_Frame_Start);
low = iLow (NULL, PERIOD_M1, bar_1M_Frame_Start);
int iH=bar_1M_Frame_Start;
int iL=bar_1M_Frame_Start;
for(int i=j;i>k;i--)
{
if(high<iHigh(NULL, PERIOD_M1, i))
{
high=iHigh(NULL, PERIOD_M1, i);
iH=i;
}
if(low>iLow (NULL, PERIOD_M1, i))
{
low=iHigh(NULL, PERIOD_M1, i);
iL=i;
}
}
if(iH>iL) string aa="HighFirst";
else if(iH<iL) aa="LowxFirst";
else if(iH==iL) aa="@sameCandle";
else aa="ambiguous";
ObjectCreate( "aa",OBJ_LABEL,0,0,0);
ObjectSet( "aa",OBJPROP_CORNER,0);
ObjectSet( "aa",OBJPROP_XDISTANCE,0);
ObjectSet( "aa",OBJPROP_YDISTANCE,60);
ObjectSetText("aa",aa,13,"TAHOMA",clrLime);
ObjectCreate( "high",OBJ_LABEL,0,0,0);
ObjectSet( "high",OBJPROP_CORNER,0);
ObjectSet( "high",OBJPROP_XDISTANCE,0);
ObjectSet( "high",OBJPROP_YDISTANCE,20);
ObjectSetText("high","H: "+DoubleToStr(high,MarketInfo(NULL,MODE_DIGITS))+"@"+TimeToStr(iTime(NULL,PERIOD_M1,iH),TIME_DATE|TIME_MINUTES),13,"TAHOMA",clrLime);
ObjectCreate( "low",OBJ_LABEL,0,0,0);
ObjectSet( "low",OBJPROP_CORNER,0);
ObjectSet( "low",OBJPROP_XDISTANCE,0);
ObjectSet( "low",OBJPROP_YDISTANCE,40);
ObjectSetText("low","L: "+DoubleToStr(low,MarketInfo(NULL,MODE_DIGITS))+"@"+TimeToStr(iTime(NULL,PERIOD_M1,iL),TIME_DATE|TIME_MINUTES),13,"TAHOMA",clrOrange);
}
//+------------------------------------------------------------------+
//| ChartEvent function |
///////////////////////////////////////////////////////////////////
int bar_1M_Frame_Start;
int barThisFrame_Start;
int bar_1M_Frame_E_N_D;
int barThisFrame_E_N_D;
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
if(id==CHARTEVENT_CLICK)
{
//--- Prepare variables
if(Period()>PERIOD_M1)
{
int x =(int)lparam;
int y =(int)dparam;
datetime dt =0;
double price =0;
int window=0;
//--- Convert the X and Y coordinates in terms of date/time
if(ChartXYToTimePrice(0,x,y,window,dt,price))
{
bar_1M_Frame_Start=iBarShift(NULL,PERIOD_M1,dt);
barThisFrame_Start=iBarShift(NULL,0,dt);
barThisFrame_E_N_D=iBarShift(NULL,0,dt)-1;
dt=iTime(NULL,0,barThisFrame_E_N_D);
bar_1M_Frame_E_N_D=iBarShift(NULL,PERIOD_M1,dt);
}
}
}
}
//+------------------------------------------------------------------+
آخر تعديل بواسطة فيلسوف البادية ، 01-08-2017 الساعة 03:39 PM
- 01-08-2017, 03:40 PM #2
افترض شمعة الديلي قبل سنة! وفريم دقيقة متاح اخر شهرين مثلاً
لابد هذا الكود يدرك ذلك, فيمتنع عن اي يوم اقدم من الشهرين
ويذهب لفريم 5 دقيقة
ثم ربع ساعة
البرنامج من البداية لابد يعرف ايش تستخدم هل دقيقة ام 5 دقيقة الخآخر تعديل بواسطة فيلسوف البادية ، 01-08-2017 الساعة 03:43 PM
- 01-08-2017, 03:46 PM #3
https://forum.arabictrader.com/t241406.html
هذا الموضوع على الرابط--افترض تبي تسوي له باكتست
وفتحت تشارت الديلي-- هل سعر الهدف وصل له قبل الدخول اساسا ام بعده لو كانت الاوامر لمت في الرابط اعلاه؟؟
طبعا الرابط اعلاه اوامر باي ستوب وسل ستوب وبالتالي مانحتاج برنامج الكوازي---لأنه يصل السعر اولا ثم يصعد للهدف او العكس في حالة البيع.
فاومر الستوب بتوعيها---برمجيا اسهل شيء (السبب منطقي مع الاتجاه وبالتالي الدخول حتما قبل الهدف)
والاشكالية في اومر اللمت التي قد نحتاج فيها برنامج الكوازي سيرتش.
فأنت وضعت شراء على بعد 20 نقطة من الافتتاح والهدف 50 (يعني 70 نقطة من الافتتاح)---منطقيا يصبل لسعر الدخول ثم لو صعد يجد الهدف
ولكن مستحيل يطمر للهدف ثم ينزل لسعر الدخول. !!آخر تعديل بواسطة فيلسوف البادية ، 01-08-2017 الساعة 03:52 PM
- 01-08-2017, 04:22 PM #4
https://forum.arabictrader.com/t241456.html
الرابط ف الرد السابق بالخطأ