النتائج 1 إلى 14 من 14
الموضوع: اندماج
- 30-01-2017, 06:42 PM #1
اندماج
سؤال للاخوة المبرمجين ماهي افضل النقاط المشتركة بين التحليل الاساسي والتحليل الفني ارجو الافادة هل في امكانية الدمج ويا ريت اقتراحات او افكار مثلا مؤشر فني مع الاخبار او................................?
آخر تعديل بواسطة 2013Lemsantah ، 30-01-2017 الساعة 06:45 PM
- 01-02-2017, 12:21 AM #2
ممكن اننا نبرمج اكسبيرت يفتح اومره بناء على الاجندة الاقتصادية وتوقعاتها وتحليلاتها والاستعانة بمؤشر للفلترة لتاكيد فتح وغلق الاوامر
سؤال :ما هو نوع الملفات الذي يمكن ان احمل به الاجندة واتعامل معها بدون اشكاليات كثيرة
- 02-02-2017, 12:02 AM #3
وعليكم السلام ورحمة الله وبركاته
المؤشرات التي تستخدم موقع forexfactory لتحميل الأخبار تستخدم اللينك
http://www.forexfactory.com/ffcal_week_this.xml
وهو من نوع xml file
- 02-02-2017, 12:24 AM #4
السلام عليكم
مشكور استاذي عل المرور المؤشر الموصوف نزلته بس المشكل انو يعطيني نتائج السابق والمتوقع وانا اريد مع السابق والمتوقع نتائج الفعلي لكي يستطيع الاكسبرت التصرف بعد صدور الخبر وجدت مؤشر يعمل مع موقع دايليhttps://www.mql5.com/pt/articles/1502 لكن لا يحمل الاجندة وهي بصيغة html ارجو المساعدة ولو عندك اكسبرت يعمل على الاخبار ممكن استفيد من افكارو اكون ممنونلكآخر تعديل بواسطة 2013Lemsantah ، 02-02-2017 الساعة 12:26 AM
- 05-02-2017, 06:46 PM #5
لدي سؤال استاذ من اي مصدر تواخذ نتائج الاجندة الاقتصادية ,لانني وجدتها متشابهة في عديد من المواقع
بالنسبة لطلبي اكسبيرت الاخبار ما انا الا مبتدا وبحكم خبرتك في السوق ارجو المساعدة
اليوم تعرفت على الوظيفة web request ارجو منك ان تفسرها قليلا
- 09-02-2017, 04:18 PM #6
الاستاذ الكبير مستر اسامة ارجو ان يلقى خطابي هذا اذن تسغاه
لقد بدات في برمجة الخبير الذي يندمج فيه التحليل الاساسي مع التحليل الفني وجدت صعوبة في تحميل البيانات ومعالجتها حتى اني تهت عن الدمج وركزت على موضوع الاخبار وجدت اشكالية في نوع الملفات ففي الملفات من نوع csv xml فهي غير متجددة اي عند خروج الخبر لا يستطيع الاكسبيرت التعامل معه وبالتالي وجدت نفسي مضطر للتعامل مع ملفات html التي تعرض مواقع الويب
وبعد بحث وجدت الوظيفة web request التي من خلالها استطعت ان احمل البيانات من اي موقع وجدتني في تحدي اخر وهو لغة html المهم بعد جهد سهر توصلت الى تحميل البيانات تاريخ ووقت وعنوان الخبروالسابق والمتوقع والفعلي بعد صدور الخبر
جاء وقت التعامل مع الخبر وبدا البحث وجدت محاولة في منتدى اجنبي واختصار للوقت اسقطتها على الاكسبيرت
واجهت مشكل التوقيت بحيث ان المنصات التوقيت بينها وبين التوقيت المحلي يجب ان يعدل من الاعدادات
كي لا اطيل عليك هاهي المحاولة محتاجة سقل من طرف خبير
كنت قدقرات في المنتدى موضوع للاخبار في هذا الرابطhttp://https://forum.arabictrader.co...ml#post1552802
ارجو ان تسقطها على الموضوعكود PHP://+------------------------------------------------------------------+
//| تداول على الاخبار.mq4 |
//| Copyright 2016, MetaQuotes Software Corp.AZZEDDINE REMMAL |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017.AZZEDDINE REMMAL"
#property link "https://[email protected]"
#property version "1.00"
#property strict
// تحديد بنية الحدث
struct EVENTS
{
string actual;
string forecast;
string previous;
string time;
string title;
string currency;
bool displayed;
};
#define MaxDailyEvents 20 // إذا كنت تعتقد سيكون لديك أكثر من 20 حدثا تأثير عالية، وزيادة هذا العدد.
EVENTS DailyEvents[MaxDailyEvents];
input bool enable_news_order_hedging=true;//تفعيل هيدج الاخبار
input int Event_xTime=27; //الوقت لEA الانتظار للحصول على الأخبار التي ستصدر
input int MagicNumber=15041978;
input bool enable_close_time=false; // تفعيل الاغلاق بعدمدة الانتظار
input int wait_time=20; //مدة الانتظار
//إعداد المخاطر والمكافآت
input int risk=20; // المخاطرة
input int reward=3; //المكافاة الرقم المظروب في المخاطرة
//يتم الافراج مواصفات خارجية الدنيا الكثير للتجارة والكثير القصوى للتداول في الأحداث الإخبارية
input double lot1=0.01;input double lot2=0.02;input double lot3=0.03;input double lot4=0.04;
input double lot5=0.05;input double lot6=0.06;input double lot7=0.07;input double lot8=0.08;
input double lot9=0.09;input double lot10=0.10;input double lot11=0.20;input double lot12=0.30;
input double lot13=0.40;input double lot14=0.50;input double lot15=0.60;input double lot16=0.70;
input double lot17=0.80;input double lot18=0.90;
//نهاية مواصفات الكثير
datetime OrderTime=0;
int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// الحصول على أحداث اليوم
GetHighImpactEvents();
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| وظيفة deinitialization الخبراء |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ObjectsDeleteAll();
}
//+------------------------------------------------------------------+
//|استخراج عنصر HTML
//+------------------------------------------------------------------+
string GetHTMLElement(string HTML, string ElementStart, string ElementEnd)
{
string data = NULL;
// البحث عن بداية ونهاية الموقف لعنصر
int s = StringFind(HTML, ElementStart) + StringLen(ElementStart);
int e = StringFind(StringSubstr(HTML, s), ElementEnd);
// محتوى العنصر عودة
if(e != 0) data = StringSubstr(HTML, s, e);
return(data);
}
//+------------------------------------------------------------------+
//| احصل على الأحداث ذات التأثير الكبير اليوم من ForexFactory.com
//+------------------------------------------------------------------+
bool GetHighImpactEvents()
{
string cookie=NULL, headers, HTML;
string url="http://www.forexfactory.com/calendar.php?day=";
string time = NULL, lasttime = NULL, currency, impact, title,actual,forecast,previous;
char post[], result[];
int res, cntr = 0, timeout = 5000;
// إذا حاليا، مجرد الخروج كما لو كان يقرأ بشكل صحيح
if(!IsConnected() || IsTesting()) return(true);
// واضح بنية الحدث اليومي
for(res = 0; res < MaxDailyEvents; res++)
{ DailyEvents[res].time = DailyEvents[res].title = DailyEvents[cntr].previous= DailyEvents[cntr].forecast= DailyEvents[cntr].actual= DailyEvents[res].currency = NULL; DailyEvents[res].displayed = false; ++res; }
// إرسال طلب ويب
url += MthName(Month()) + DoubleToStr(Day(), 0) + "." + DoubleToStr(Year(), 0);
ResetLastError();
res = WebRequest("GET", url, cookie, NULL, timeout, post, 0, result, headers);
//تحقق من وجود أخطاء
if(res == -1)
{
Print("Error in WebRequest. Error code = ", GetLastError());
MessageBox("Add the address 'http://forexfactory.com/' in the\nlist of allowed URLs on tab 'Expert Advisors'", "Error", MB_ICONINFORMATION);
}
else
{
//--- ناجح تحميل
PrintFormat("File successfully downloaded, the file size in bytes =%d.",ArraySize(result));
//--- حفظ البيانات في ملف
int filehandle=FileOpen("news-forexfactory.html",FILE_WRITE|FILE_BIN);
//---
if(filehandle!=INVALID_HANDLE)
{
//---حفظ محتويات المصفوفة ينتج [] في ملف
FileWriteArray(filehandle,result,0,ArraySize(result));
//--- إغلاق الملف
FileClose(filehandle);
int filehandle2=FileOpen("news-forexfactory.html",FILE_READ|FILE_BIN);
HTML=FileReadString(filehandle2,ArraySize(result));
FileClose(filehandle2);
}else{
Print("Error in FileOpen. Error code =",GetLastError());
}
// تحويل صفيف حرف إلى سلسلة
HTML = CharArrayToString(result);
// التقويم تحميل، تأكد من انها لتاريخ اليوم
int i = StringFind(HTML, "<span class=\"date\">");
if(i == -1) return(false);
HTML = StringSubstr(HTML, i);
string date = GetHTMLElement(HTML, "<span>", "</span>");
if(date != MthName(Month()) + " " + DoubleToStr(Day(), 0)) return(false);
// الآن الحصول على صفوف الجدول لكل حدث
lasttime = NULL;
date = DoubleToStr(Year(), 0) + "." + DoubleToStr(Month(), 0) + "." + DoubleToStr(Day(), 0) + " ";
do
{
// الحصول على معلومات الحدث
time = GetHTMLElement(HTML, "<td class=\"calendar__cell calendar__time time\">", "</td>");
if(StringFind(time, "<a name=\"upnext\"") == 0) time = GetHTMLElement(time, "class=\"upnext\">", "</span>");
if(StringLen(time) != 0) lasttime = time;
if(StringLen(time) == 0) time = lasttime;
// إذا كان الوقت قد 'مساء' فيه، إضافة 12 ساعة. StrToTime يفهم فقط على مدار الساعة 24 ساعة.
if(StringFind(time, "pm") != -1) time = TimeToStr(StrToTime(time) + (12*60*60));
time = date + time;
// الحصول على عناصر أخرى نحتاج
currency = GetHTMLElement(HTML, "<td class=\"calendar__cell calendar__currency currency\">", "</td>");
impact = GetHTMLElement(HTML, "<span title=\"", "\" class=\"");
i = StringFind(impact, " Impact");
if(i != -1) impact = StringSubstr(impact, 0, i);
title = GetHTMLElement(HTML, "\"calendar__event-title\">", "</span>");
previous = GetHTMLElement(HTML, "<td class=\"calendar__cell calendar__previous previous\">", "</td>");
forecast = GetHTMLElement(HTML, "<td class=\"calendar__cell calendar__forecast forecast\">", "</td>");
actual = GetHTMLElement(HTML, "<td class=\"calendar__cell calendar__actual actual\">", "</td>");
// هل هذا الحدث تأثير كبير لزوج العملة الخاصة بي؟
if(StringFind(Symbol(),currency) != -1 &&( impact == "High"))
{
//إضافة إلى بنية الحدث اليومي
DailyEvents[cntr].displayed = false;
DailyEvents[cntr].time = time;
DailyEvents[cntr].title = title;
DailyEvents[cntr].previous = previous;
DailyEvents[cntr].forecast = forecast;
DailyEvents[cntr].actual = actual;
DailyEvents[cntr++].currency = currency;
}
// قطع سلسلة HTML إلى الصف التالي في الجدول
i = StringFind(HTML, "</tbody> </table> </td> </tr> ");
if(i != -1) HTML = StringSubstr(HTML, i+30);
if(StringFind(HTML, "</table> <div class=\"foot\">") == 0) i = -1;
} while(i != -1 || cntr == MaxDailyEvents);
}
// عرض الأحداث عالية التأثير، إن وجدت
lasttime = NULL;
for(cntr = 0; cntr < MaxDailyEvents; cntr++)
{
if(StringLen(DailyEvents[cntr].time) == 0) break;
//إنشاء علامة الحدث على الرسم البياني إذا كان السوق الماضي لم نفس الوقت
if(lasttime != DailyEvents[cntr].time)
{
res = cntr;
if(ObjectCreate(0, "Event" + DoubleToStr(cntr, 0), OBJ_EVENT, 0, StrToTime(DailyEvents[cntr].time), 0))
{
ObjectSetString(0, "Event" + DoubleToStr(cntr, 0), OBJPROP_TEXT, DailyEvents[cntr].title + " (" + DailyEvents[cntr].currency + ")");
ObjectSetInteger(0, "Event" + DoubleToStr(cntr, 0), OBJPROP_COLOR, Red);
ObjectSetInteger(0, "Event" + DoubleToStr(cntr, 0), OBJPROP_WIDTH, 2);
ObjectSetInteger(0, "Event" + DoubleToStr(cntr, 0), OBJPROP_BACK, true);
ObjectSetInteger(0, "Event" + DoubleToStr(cntr, 0), OBJPROP_SELECTABLE, false);
ObjectSetInteger(0, "Event" + DoubleToStr(cntr, 0), OBJPROP_SELECTED, false);
ObjectSetInteger(0, "Event" + DoubleToStr(cntr, 0), OBJPROP_HIDDEN, true);
ObjectSetString(0, "Event" + DoubleToStr(cntr, 0), OBJPROP_TOOLTIP, DailyEvents[cntr].title + " (" + DailyEvents[cntr].currency + ")");
}
// إنشاء خط عمودي إذا حدث في المستقبل
if(TimeCurrent() < StrToTime(DailyEvents[cntr].time))
{
Comment("time : ",DailyEvents[cntr].time,
"\n","Currency: ",DailyEvents[cntr].currency,
"\n","title: ",DailyEvents[cntr].title,
"\n","Forecast: ",DailyEvents[cntr].forecast,
"\n","Previous: ",DailyEvents[cntr].previous,
"\n","Actual: ",DailyEvents[cntr].actual);
if(ObjectCreate(0, "VLine" + DoubleToStr(cntr, 0), OBJ_VLINE, 0, StrToTime(DailyEvents[cntr].time), 0))
{
ObjectSetInteger(0, "VLine" + DoubleToStr(cntr, 0), OBJPROP_COLOR, Red);
ObjectSetInteger(0, "VLine" + DoubleToStr(cntr, 0), OBJPROP_WIDTH, 1);
ObjectSetInteger(0, "VLine" + DoubleToStr(cntr, 0), OBJPROP_BACK, true);
ObjectSetInteger(0, "VLine" + DoubleToStr(cntr, 0), OBJPROP_SELECTABLE, false);
ObjectSetInteger(0, "VLine" + DoubleToStr(cntr, 0), OBJPROP_SELECTED, false);
ObjectSetInteger(0, "VLine" + DoubleToStr(cntr, 0), OBJPROP_HIDDEN, true);
ObjectSetString(0, "VLine" + DoubleToStr(cntr, 0), OBJPROP_TOOLTIP, DailyEvents[cntr].title + " (" + DailyEvents[cntr].currency + ")" + " (" + DailyEvents[cntr].forecast + ")"+ " (" + DailyEvents[cntr].previous + ")");
ObjectSetInteger(0, "VLine" + DoubleToStr(cntr, 0), OBJPROP_TIMEFRAMES, OBJ_PERIOD_M1 | OBJ_PERIOD_M5 | OBJ_PERIOD_M15 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1);
}
}
else
DailyEvents[cntr].displayed = true;
}
else
{
title = ObjectGetString(0, "Event" + DoubleToStr(res, 0), OBJPROP_TOOLTIP);
title += "\n" + DailyEvents[cntr].title + " (" + DailyEvents[cntr].currency + ")";
ObjectSetString(0, "Event" + DoubleToStr(res, 0), OBJPROP_TOOLTIP, title);
if(TimeCurrent() < StrToTime(DailyEvents[cntr].time)) ObjectSetString(0, "Vline" + DoubleToStr(res, 0), OBJPROP_TOOLTIP, title);
}
lasttime = DailyEvents[cntr].time;
}
// خروج
return(true);
}
//+------------------------------------------------------------------+
//|إرجاع اسم الشهر طويلة أو قصيرة
//+------------------------------------------------------------------+
string MthName(int Mth, bool ShortName=true)
{
switch(Mth)
{
case 1:
return((ShortName ? "Jan" : "January"));
break;
case 2:
return((ShortName ? "Feb" : "February"));
break;
case 3:
return((ShortName ? "Mar" : "March"));
break;
case 4:
return((ShortName ? "Apr" : "April"));
break;
case 5:
return((ShortName ? "May" : "May"));
break;
case 6:
return((ShortName ? "Jun" : "June"));
break;
case 7:
return((ShortName ? "Jul" : "July"));
break;
case 8:
return((ShortName ? "Aug" : "August"));
break;
case 9:
return((ShortName ? "Sep" : "September"));
break;
case 10:
return((ShortName ? "Oct" : "October"));
break;
case 11:
return((ShortName ? "Nov" : "November"));
break;
case 12:
return((ShortName ? "Dec" : "December"));
break;
}
//الشهر غير معروف
return("?");
}
//+------------------------------------------------------------------+
//وظيفة التي تحوط للأمر وضعت حديثا
//+------------------------------------------------------------------+
void hedgenewsorder(string oSymbol,string cmd, double volume,string comment)
{
int hedgeticket=0;
//إذا اليورو مقابل الدولار الأميركي = شراء، الدولار مقابل الفرنك السويسري = شراء
//إذا اليورو مقابل الدولار الأميركي = بيع، الدولار مقابل الفرنك السويسري = بيع
if(oSymbol=="EURUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("USDCHF",OP_BUY, volume,MarketInfo("USDCHF",MODE_ASK),3,MarketInfo("USDCHF",MODE_ASK)-(risk*MarketInfo("USDCHF",MODE_POINT)),MarketInfo("USDCHF",MODE_ASK)+(reward*risk*MarketInfo("USDCHF",MODE_POINT)),comment,MagicNumber);}
if(oSymbol=="EURUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("USDCHF",OP_SELL,volume,MarketInfo("USDCHF",MODE_BID),3,MarketInfo("USDCHF",MODE_BID)+(risk*MarketInfo("USDCHF",MODE_POINT)),MarketInfo("USDCHF",MODE_BID)-(reward*risk*MarketInfo("USDCHF",MODE_POINT)),comment,MagicNumber);}
//إذا الدولارمقابل الين = شراء، الجنيه الإسترليني مقابل الدولار = بيع
//إذا الدولارمقابل الين = بيع، الجنيه الإسترليني مقابل الدولار = شراء
if(oSymbol=="USDJPY" && cmd=="OP_BUY") {hedgeticket=OrderSend("GBPUSD",OP_SELL,volume,MarketInfo("GBPUSD",MODE_BID),3,MarketInfo("GBPUSD",MODE_BID)+(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_BID)-(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
if(oSymbol=="USDJPY" && cmd=="OP_SELL"){hedgeticket=OrderSend("GBPUSD",OP_BUY, volume,MarketInfo("GBPUSD",MODE_ASK),3,MarketInfo("GBPUSD",MODE_ASK)-(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_ASK)+(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
//إذا شراء الجنيه الإسترليني مقابل الدولار =، USDCAD = شراء
//إذا بيع الجنيه الاسترليني مقابل الدولار =، USDCAD == بيع
if(oSymbol=="GBPUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("USDCAD",OP_BUY, volume,MarketInfo("USDCAD",MODE_ASK),3,MarketInfo("USDCAD",MODE_ASK)-(risk*MarketInfo("USDCAD",MODE_POINT)),MarketInfo("USDCAD",MODE_ASK)+(reward*risk*MarketInfo("USDCAD",MODE_POINT)),comment,MagicNumber);}
if(oSymbol=="GBPUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("USDCAD",OP_SELL,volume,MarketInfo("USDCAD",MODE_BID),3,MarketInfo("USDCAD",MODE_BID)+(risk*MarketInfo("USDCAD",MODE_POINT)),MarketInfo("USDCAD",MODE_BID)-(reward*risk*MarketInfo("USDCAD",MODE_POINT)),comment,MagicNumber);}
// إذا الدولار مقابل الفرنك السويسري = شراء، اليورو مقابل الدولار الأميركي = شراء
// إذا الدولار مقابل الفرنك السويسري = بيع، الدولار مقابل الفرنك السويسري = بيع
if(oSymbol=="USDCHF" && cmd=="OP_BUY") {hedgeticket=OrderSend("EURUSD",OP_BUY, volume,MarketInfo("EURUSD",MODE_ASK),3,MarketInfo("EURUSD",MODE_ASK)-(risk*MarketInfo("EURUSD",MODE_POINT)),MarketInfo("EURUSD",MODE_ASK)+(reward*risk*MarketInfo("EURUSD",MODE_POINT)),comment,MagicNumber);}
if(oSymbol=="USDCHF" && cmd=="OP_SELL"){hedgeticket=OrderSend("EURUSD",OP_SELL,volume,MarketInfo("EURUSD",MODE_BID),3,MarketInfo("EURUSD",MODE_BID)+(risk*MarketInfo("EURUSD",MODE_POINT)),MarketInfo("EURUSD",MODE_BID)-(reward*risk*MarketInfo("EURUSD",MODE_POINT)),comment,MagicNumber);}
// إذا الدولار الأسترالي مقابل الدولار = شراء، الجنيه الإسترليني مقابل الدولار = بيع
// إذا الدولار الأسترالي مقابل الدولار = بيع، الجنيه الإسترليني مقابل الدولار = شراء
if(oSymbol=="AUDUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("GBPUSD",OP_SELL,volume,MarketInfo("GBPUSD",MODE_BID),3,MarketInfo("GBPUSD",MODE_BID)+(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_BID)-(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
if(oSymbol=="AUDUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("GBPUSD",OP_BUY, volume,MarketInfo("GBPUSD",MODE_ASK),3,MarketInfo("GBPUSD",MODE_ASK)-(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_ASK)+(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
//إذا الدولار مقابل الدولار الكندي = شراء، الجنيه الإسترليني مقابل الدولار = شراء
//إذا الدولار مقابل الدولارالكندي = بيع، الجنيه الإسترليني مقابل الدولار = بيع
if(oSymbol=="USDCAD" && cmd=="OP_BUY") {hedgeticket=OrderSend("GBPUSD",OP_BUY, volume,MarketInfo("GBPUSD",MODE_ASK),3,MarketInfo("GBPUSD",MODE_ASK)-(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_ASK)+(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
if(oSymbol=="USDCAD" && cmd=="OP_SELL"){hedgeticket=OrderSend("GBPUSD",OP_SELL,volume,MarketInfo("GBPUSD",MODE_BID),3,MarketInfo("GBPUSD",MODE_BID)+(risk*MarketInfo("GBPUSD",MODE_POINT)),MarketInfo("GBPUSD",MODE_BID)-(reward*risk*MarketInfo("GBPUSD",MODE_POINT)),comment,MagicNumber);}
//إذا NZDUSD = شراء، الدولار الأسترالي مقابل الدولار = بيع
//إذا NZDUSD = بيع، الدولار الأسترالي مقابل الدولار = شراء
if(oSymbol=="NZDUSD" && cmd=="OP_BUY") {hedgeticket=OrderSend("AUDUSD",OP_SELL,volume,MarketInfo("AUDUSD",MODE_BID),3,MarketInfo("AUDUSD",MODE_BID)+(risk*MarketInfo("AUDUSD",MODE_POINT)),MarketInfo("AUDUSD",MODE_BID)-(reward*risk*MarketInfo("AUDUSD",MODE_POINT)),comment,MagicNumber);}
if(oSymbol=="NZDUSD" && cmd=="OP_SELL"){hedgeticket=OrderSend("AUDUSD",OP_BUY, volume,MarketInfo("AUDUSD",MODE_ASK),3,MarketInfo("AUDUSD",MODE_ASK)-(risk*MarketInfo("AUDUSD",MODE_POINT)),MarketInfo("AUDUSD",MODE_ASK)+(reward*risk*MarketInfo("AUDUSD",MODE_POINT)),comment,MagicNumber);}
return;
}
//+------------------------------------------------------------------+
//
//+------------------------------------------------------------------+
void CloseOrders()//وظيفة الذي يغلق أوامر فتح بعد مبلغ العاشر من الزمن قد مر!
{
int opened_orders=OrdersTotal();
for (int fe=0;fe<opened_orders;fe++)
{
bool Select= OrderSelect(fe, SELECT_BY_POS, MODE_TRADES); //check opened orders
if(enable_close_time==true && OrderMagicNumber()==MagicNumber && TimeCurrent()>OrderTime+wait_time*60 && OrderType()==OP_BUY)
{
double order_bid=MarketInfo(OrderSymbol(),MODE_BID);
bool close= OrderClose(OrderTicket(),OrderLots(),order_bid,30,Violet);
}
if(enable_close_time==true && OrderMagicNumber()==MagicNumber && TimeCurrent()>OrderTime+wait_time*60 && OrderType()==OP_SELL)
{
double order_ask=MarketInfo(OrderSymbol(),MODE_ASK);
bool close= OrderClose(OrderTicket(),OrderLots(),order_ask,30,Violet);
}
}
return;
}
//+------------------------------------------------------------------+
//| وظيفة بداية الخبراء |
//+------------------------------------------------------------------+
void OnTick()
{
string event =NULL;
// هل هناك حدث في 30 دقيقة القادمة?
for(int i = 0; i < MaxDailyEvents; i++)
{
if(StringLen(DailyEvents[i].time) == 0) break;
if(TimeCurrent() >= StrToTime(DailyEvents[i].time) - 1800 && TimeCurrent() < StrToTime(DailyEvents[i].time) && !DailyEvents[i].displayed)
{
//حدث في 30 دقيقة
event += DailyEvents[i].title + " (" + DailyEvents[i].currency + "), ";
DailyEvents[i].displayed = true;
// حذف الخط العمودي المرتبطة بالحدث
if(ObjectFind("VLine" + DoubleToStr(i, 0)) >= 0) ObjectDelete("VLine" + DoubleToStr(i, 0));
}
// if(TimeCurrent() >= StrToTime(DailyEvents[i].time) + (xTime*60) && TimeCurrent() < StrToTime(DailyEvents[i].time)) GetHighImpactEvents();
// أي شيء لعرضه
if(StringLen(event) != 0)
{
event += "in 30 minutes.";
Alert(event);
string forecast= DailyEvents[i].forecast;
string previous= DailyEvents[i].previous;
string time=DailyEvents[i].time;
string actual= DailyEvents[i].actual ;
string currency=DailyEvents[i].currency ;
Comment("time : ",DailyEvents[i].time,
"\n","Currency: ",DailyEvents[i].currency,
"\n","title: ",DailyEvents[i].title,
"\n","Forecast: ",DailyEvents[i].forecast,
"\n","Previous: ",DailyEvents[i].previous,
"\n","Actual: ",DailyEvents[i].actual);
string ordercurrency="";
if(currency=="EUR" ){ordercurrency="EURUSD";} //trading eurusd
if(currency=="USD" ){ordercurrency="EURUSD";} //trading eurusd
if(currency=="JPY" ){ordercurrency="USDJPY";} //trading usdjpy
if(currency=="GBP" ){ordercurrency="GBPUSD";} //trading usdgbp
if(currency=="CHF" ){ordercurrency="USDCHF";} //trading usdchf
if(currency=="AUD" ){ordercurrency="AUDUSD";} //trading audusd
if(currency=="CAD" ){ordercurrency="USDCAD";} //trading usdcad
if(currency=="NZD" ){ordercurrency="NZDUSD";} //trading nzdusd
// double atr=iATR(ordercurrency, 0, 14, 0);
//(1)الدول لدخول السوق
//(1) عندما يتم تحرير البيانات الفعلية، ومقارنة ذلك للتنبؤ، وتأكد من عدم التداول إذا حدث يحتوي على رمز قبل الأعداد الصحيحة، على سبيل المثال، 56 $، و "$" يتسبب في EA لوقف
if(StringLen(forecast)>0 && StringLen(previous)>0 )//غير الصفر، يعتني رمزا أمام الحدث
{
// الفرق في المئة الفعلية للتنبؤ
double percent_d_AF=MathAbs((MathAbs(StringToDouble(forecast)-StringToDouble(previous))/StringToDouble(previous))*100);
double lot_p=0;
if((percent_d_AF>0 && percent_d_AF<=3)){lot_p=lot1;}//0.1 lot
if((percent_d_AF>3 && percent_d_AF<=6)){lot_p=lot2;}//0.2 lots
if((percent_d_AF>6 && percent_d_AF<=9)){lot_p=lot3;}//0.3 lots
if((percent_d_AF>9 && percent_d_AF<=12)){lot_p=lot4;}//0.4 lots
if((percent_d_AF>12 && percent_d_AF<=15)){lot_p=lot5;}//0.5 lots
if((percent_d_AF>15 && percent_d_AF<=18)){lot_p=lot6;}//0.6 lots
if((percent_d_AF>18 && percent_d_AF<=21)){lot_p=lot7;}//0.7 lots
if((percent_d_AF>21 && percent_d_AF<=24)){lot_p=lot8;}//0.8 lots
if((percent_d_AF>24 && percent_d_AF<=27)){lot_p=lot9;}//0.9 lots
if((percent_d_AF>27 && percent_d_AF<=30)){lot_p=lot10;}//0.10 lots
if((percent_d_AF>30 && percent_d_AF<=40)){lot_p=lot11;}//0.20 lots
if((percent_d_AF>40 && percent_d_AF<=50)){lot_p=lot12;}//0.30 lots
if((percent_d_AF>50 && percent_d_AF<=60)){lot_p=lot13;}//0.40 lots
if((percent_d_AF>60 && percent_d_AF<=70)){lot_p=lot14;}//0.50 lots
if((percent_d_AF>70 && percent_d_AF<=80)){lot_p=lot15;}//0.60 lots
if((percent_d_AF>80 && percent_d_AF<=90)){lot_p=lot16;}//0.70 lots
if((percent_d_AF>90 && percent_d_AF<=100)){lot_p=lot17;}//0.80 lots
if((percent_d_AF>100)) {lot_p=lot18;}//0.90 lots
if(StringToDouble(forecast)>StringToDouble(previous))
{
Alert("Stronger(forecast vs previous): "+currency+" "+"Time: "+time);
int total=OrdersTotal();
for(int cnt=0;cnt<total;cnt++)
{
bool Select=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); //تحقق أوامر فتح DoubleToString(
if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
}
int historytotal=OrdersHistoryTotal();
for(int cnt=0;cnt<historytotal;cnt++)
{
bool Select= OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY); //تحقق أوامر فتح
if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL" || OrderComment()==currency+forecast+previous+"BUY[sl]" || OrderComment()==currency+forecast+previous+"SELL[sl]" ||OrderComment()==currency+forecast+previous+"BUY[tp]" || OrderComment()==currency+forecast+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
}
if(currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
{double ask=MarketInfo(ordercurrency,MODE_ASK);double point1=MarketInfo(ordercurrency,MODE_POINT); ticket=OrderSend(ordercurrency,OP_BUY,lot_p,ask,30,ask-(risk*point1),ask+(reward*risk*point1),currency+forecast+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p,currency+forecast+previous+"BUY");}}
if(currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
{double bid=MarketInfo(ordercurrency,MODE_BID); double point2=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p,bid,30,bid+(risk*point2),bid-(reward*risk*point2),currency+forecast+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p,currency+forecast+previous+"SELL");}}
}
if(StringToDouble(forecast)<StringToDouble(previous))
{
int total1=OrdersTotal();
for(int cnt=0;cnt<total1;cnt++)
{
bool Select= OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); //تحقق أوامر فتح
if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
}
int historytotal1=OrdersHistoryTotal();
for(int cnt=0;cnt<historytotal1;cnt++)
{
bool Select= OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY); //تحقق أوامر فتح
if(OrderComment()==currency+forecast+previous+"BUY" || OrderComment()==currency+forecast+previous+"SELL" || OrderComment()==currency+forecast+previous+"BUY[sl]" || OrderComment()==currency+forecast+previous+"SELL[sl]" || OrderComment()==currency+forecast+previous+"BUY[tp]" || OrderComment()==currency+forecast+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
}
Alert("Weaker(actual vs forecast): "+currency+" "+"Time: "+time);
if(currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
{double bidd=MarketInfo(ordercurrency,MODE_BID); double point3=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p,bidd,30,bidd+(risk*point3),bidd-(reward*risk*point3),currency+forecast+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p,currency+forecast+previous+"SELL");}}
if(currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
{double askk=MarketInfo(ordercurrency,MODE_ASK); double point4=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_p,askk,30,askk-(risk*point4),askk+(reward*risk*point4),currency+forecast+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p,currency+forecast+previous+"BUY");}}
}
return; }
//(2)الدول لدخول السوق
// عندما يتم تحرير البيانات الفعلية، ومقارنة ذلك للتنبؤ، وتأكد من عدم التداول إذا حدث يحتوي على رمز قبل الأعداد الصحيحة، على سبيل المثال، 56 $، و "$" يتسبب في EA لوقف
if(StringLen(actual)>0 && StringLen(forecast)>0 )//غير الصفر، يعتني رمزا أمام الحدث
{
// الفرق في المئة الفعلية للتنبؤ
double percent_d_AF=MathAbs((MathAbs(StringToDouble(actual)-StringToDouble(forecast))/StringToDouble(forecast))*100);
double lot_p1=0;
if((percent_d_AF>0 && percent_d_AF<=3)){lot_p1=lot1;}//0.1 lot
if((percent_d_AF>3 && percent_d_AF<=6)){lot_p1=lot2;}//0.2 lots
if((percent_d_AF>6 && percent_d_AF<=9)){lot_p1=lot3;}//0.3 lots
if((percent_d_AF>9 && percent_d_AF<=12)){lot_p1=lot4;}//0.4 lots
if((percent_d_AF>12 && percent_d_AF<=15)){lot_p1=lot5;}//0.5 lots
if((percent_d_AF>15 && percent_d_AF<=18)){lot_p1=lot6;}//0.6 lots
if((percent_d_AF>18 && percent_d_AF<=21)){lot_p1=lot7;}//0.7 lots
if((percent_d_AF>21 && percent_d_AF<=24)){lot_p1=lot8;}//0.8 lots
if((percent_d_AF>24 && percent_d_AF<=27)){lot_p1=lot9;}//0.9 lots
if((percent_d_AF>27 && percent_d_AF<=30)){lot_p1=lot10;}//0.10 lots
if((percent_d_AF>30 && percent_d_AF<=40)){lot_p1=lot11;}//0.20 lots
if((percent_d_AF>40 && percent_d_AF<=50)){lot_p1=lot12;}//0.30 lots
if((percent_d_AF>50 && percent_d_AF<=60)){lot_p1=lot13;}//0.40 lots
if((percent_d_AF>60 && percent_d_AF<=70)){lot_p1=lot14;}//0.50 lots
if((percent_d_AF>70 && percent_d_AF<=80)){lot_p1=lot15;}//0.60 lots
if((percent_d_AF>80 && percent_d_AF<=90)){lot_p1=lot16;}//0.70 lots
if((percent_d_AF>90 && percent_d_AF<=100)){lot_p1=lot17;}//0.80 lots
if((percent_d_AF>100)) {lot_p1=lot18;}//0.90 lots
if(StringToDouble(actual)>StringToDouble(forecast))
{
Alert("Stronger(actual vs forecast): "+currency+" "+"Time: "+time);
int total2=OrdersTotal();
for(int cnt=0;cnt<total2;cnt++)
{
bool Select=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); //تحقق أوامر فتح DoubleToString(
if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
}
int historytotal2=OrdersHistoryTotal();
for(int cnt=0;cnt<historytotal2;cnt++)
{
bool Select= OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY); //تحقق أوامر فتح
if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL" || OrderComment()==currency+actual+forecast+"BUY[sl]" || OrderComment()==currency+actual+forecast+"SELL[sl]" ||OrderComment()==currency+actual+forecast+"BUY[tp]" || OrderComment()==currency+actual+forecast+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
}
if(currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
{double ask=MarketInfo(ordercurrency,MODE_ASK);double point1=MarketInfo(ordercurrency,MODE_POINT); ticket=OrderSend(ordercurrency,OP_BUY,lot_p1,ask,3,ask-(risk*point1),ask+(reward*risk*point1),currency+actual+forecast+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p1,currency+actual+forecast+"BUY");}}
if(currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
{double bid=MarketInfo(ordercurrency,MODE_BID); double point2=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p1,bid,3,bid+(risk*point2),bid-(reward*risk*point2),currency+actual+forecast+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p1,currency+actual+forecast+"SELL");}}
}
if(StringToDouble(actual)<StringToDouble(forecast))
{
int total3=OrdersTotal();
for(int cnt=0;cnt<total3;cnt++)
{
bool Select= OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); //تحقق أوامر فتح
if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
}
int historytotal3=OrdersHistoryTotal();
for(int cnt=0;cnt<historytotal3;cnt++)
{
bool Select= OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY); //تحقق أوامر فتح
if(OrderComment()==currency+actual+forecast+"BUY" || OrderComment()==currency+actual+forecast+"SELL" || OrderComment()==currency+actual+forecast+"BUY[sl]" || OrderComment()==currency+actual+forecast+"SELL[sl]" || OrderComment()==currency+actual+forecast+"BUY[tp]" || OrderComment()==currency+actual+forecast+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
}
Alert("Weaker(actual vs forecast): "+currency+" "+"Time: "+time);
if(currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
{double bidd=MarketInfo(ordercurrency,MODE_BID); double point3=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_p1,bidd,3,bidd+(risk*point3),bidd-(reward*risk*point3),currency+actual+forecast+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_p1,currency+actual+forecast+"SELL");}}
if(currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
{double askk=MarketInfo(ordercurrency,MODE_ASK); double point4=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_p1,askk,3,askk-(risk*point4),askk+(reward*risk*point4),currency+actual+forecast+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_p1,currency+actual+forecast+"BUY");}}
}
return; }
//(3) عندما يتم تحرير البيانات الفعلية، ومقارنته السابق (طول سلسلة من == توقعات 0)
if(StringLen(actual)>0 && StringLen(forecast)==0 && StringLen(previous)>0 )
{
//الفرق في المئة الفعلي لسابقة
double percent_d_AP=MathAbs((MathAbs(StringToDouble(actual)-StringToDouble(previous))/StringToDouble(previous))*100);
double lot_pp=0;
if((percent_d_AP>0 && percent_d_AP<=3)){lot_pp=lot1;}//0.1 lot
if((percent_d_AP>3 && percent_d_AP<=6)){lot_pp=lot2;}//0.2 lots
if((percent_d_AP>6 && percent_d_AP<=9)){lot_pp=lot3;}//0.3 lots
if((percent_d_AP>9 && percent_d_AP<=12)){lot_pp=lot4;}//0.4 lots
if((percent_d_AP>12 && percent_d_AP<=15)){lot_pp=lot5;}//0.5 lots
if((percent_d_AP>15 && percent_d_AP<=18)){lot_pp=lot6;}//0.6 lots
if((percent_d_AP>18 && percent_d_AP<=21)){lot_pp=lot7;}//0.7 lots
if((percent_d_AP>21 && percent_d_AP<=24)){lot_pp=lot8;}//0.8 lots
if((percent_d_AP>24 && percent_d_AP<=27)){lot_pp=lot9;}//0.9 lots
if((percent_d_AP>27 && percent_d_AP<=30)){lot_pp=lot10;}//0.10 lots
if((percent_d_AP>30 && percent_d_AP<=40)){lot_pp=lot11;}//0.20 lots
if((percent_d_AP>40 && percent_d_AP<=50)){lot_pp=lot12;}//0.30 lots
if((percent_d_AP>50 && percent_d_AP<=60)){lot_pp=lot13;}//0.40 lots
if((percent_d_AP>60 && percent_d_AP<=70)){lot_pp=lot14;}//0.50 lots
if((percent_d_AP>70 && percent_d_AP<=80)){lot_pp=lot15;}//0.60 lots
if((percent_d_AP>80 && percent_d_AP<=90)){lot_pp=lot16;}//0.70 lots
if((percent_d_AP>90 && percent_d_AP<=100)){lot_pp=lot17;}//0.80 lots
if((percent_d_AP>100)) {lot_pp=lot18;}//0.90 lots
if(StringToDouble(actual)>StringToDouble(previous))
{
Alert("Stronger(actual vs previous): "+currency+" "+"Time: "+time);
int total4=OrdersTotal();
for(int cnt=0;cnt<total4;cnt++)
{
bool Select= OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); //تحقق أوامر فتح
if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
}
int historytotal4=OrdersHistoryTotal();
for(int cnt=0;cnt<historytotal4;cnt++)
{
bool Select= OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY); //تحقق أوامر فتح
if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL" || OrderComment()==currency+actual+previous+"BUY[sl]" || OrderComment()==currency+actual+previous+"SELL[sl]" || OrderComment()==currency+actual+previous+"BUY[tp]" || OrderComment()==currency+actual+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
}
if(currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
{double askz=MarketInfo(ordercurrency,MODE_ASK);double point5=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_pp,askz,3,askz-(risk*point5),askz+(reward*risk*point5),currency+actual+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_pp,currency+actual+previous+"BUY");}}
if(currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
{double bidz=MarketInfo(ordercurrency,MODE_BID); double point6=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_pp,bidz,3,bidz+(risk*point6),bidz-(reward*risk*point6),currency+actual+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_pp,currency+actual+previous+"SELL");}}
}
if(StringToDouble(actual)<StringToDouble(previous))
{
Alert("Weaker(actual vs previous): "+currency+" "+"Time: "+time);
int total5=OrdersTotal();
for(int cnt=0;cnt<total5;cnt++)
{
bool Select= OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); //تحقق أوامر فتح
if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL"){Comment("\n"+"Live Trade Open"+DoubleToString(OrderTicket(),0));return;}
}
int historytotal5=OrdersHistoryTotal();
for(int cnt=0;cnt<historytotal5;cnt++)
{
bool Select= OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY); //تحقق أوامر فتح
if(OrderComment()==currency+actual+previous+"BUY" || OrderComment()==currency+actual+previous+"SELL" || OrderComment()==currency+actual+previous+"BUY[sl]" || OrderComment()==currency+actual+previous+"SELL[sl]" || OrderComment()==currency+actual+previous+"BUY[tp]" || OrderComment()==currency+actual+previous+"SELL[tp]"){Comment("\n"+"Trade Executed"+DoubleToString(OrderTicket(),0));return;}
}
if(currency=="EUR"||currency=="GBP"||currency=="AUD"||currency=="NZD")
{double bidx=MarketInfo(ordercurrency,MODE_BID); double point7=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_SELL,lot_pp,bidx,3,bidx+(risk*point7),bidx-(reward*risk*point7),currency+actual+previous+"SELL",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_SELL",lot_pp,currency+actual+previous+"SELL");}}
if(currency=="CHF"||currency=="CAD"||currency=="JPY"||currency=="USD")
{double askx=MarketInfo(ordercurrency,MODE_ASK); double point8=MarketInfo(ordercurrency,MODE_POINT);ticket=OrderSend(ordercurrency,OP_BUY,lot_pp,askx,3,askx-(risk*point8),askx+(reward*risk*point8),currency+actual+previous+"BUY",MagicNumber);OrderTime=TimeCurrent();if(enable_news_order_hedging==true){hedgenewsorder(ordercurrency,"OP_BUY",lot_pp,currency+actual+previous+"BUY");}}
}
return; }
}
}
}
//+------------------------------------------------------------------+
//| نهاية الكود
//+------------------------------------------------------------------+
تلميذ رمال عزالدينآخر تعديل بواسطة 2013Lemsantah ، 09-02-2017 الساعة 04:23 PM
- 14-02-2017, 12:12 AM #7
استاذي العزيز الرجاء مراجعة الكود واضافة تصحيح الوقت من الاعدادات
كذالك بالنسبة للشروط الدخول ياريت تكون على الاخبار المتوسطة والضعيفة
واضافة تمييز الاخبار بالوان المتوسط برتقالي والضعيف اصفر
- 16-02-2017, 02:36 AM #8
حاجة راح اقلها انو مافيش تفاعل ازاي نطور الفكرة من غير تفاعل وشكرا استاذنا العزيز على المجهود المبذول من طرفك في دعم المبتدئين
- 16-02-2017, 11:17 PM #9
حتى تستطيع حل مشكلة فرق التوقيت فيجب أن تعرف فرق توقيت المنصه حسب توقيت جرينتش وأيضا توقيت الأخبار
يمكنك إستخدام الداله
كود PHP:TimeGMT()
كود PHP:TimeCurrent()
سوف اقوم بتعديله لك بالتفصيل ووضع الشرح للإستفادة وأحييك على المجهود المبذول القوي
- 22-02-2017, 12:12 AM #10
اشكرك استاذي على التعديل وعندي اقتراح اخر ان تضيف خيار تعليق صفقتين معلقتين لان بعض الاخبار القوية ليس معها اي توقعات ويكون اختياري bool في الاعدادات وان تضيف له عرض في مكان الدالة كومنت واذا رايت اي اضافات اخرى فلك ذالك منتضرك على احر من الجمر
- 23-02-2017, 09:01 PM #11
- 10-03-2017, 03:45 PM #12
هل هناك جديد استاذي لان الزمن عندي متوقف
- 21-03-2017, 01:36 AM #13
- 04-04-2017, 06:32 PM #14