1 مرفق
كيفية إستخدام الكيبورد في لغة MQL4
السلام عليكم ورحمة الله وبركاته
أهلا بكم في موضوع تعليمي آخر مع الداله OnChartEvent وإمتداد للموضوع الرئيسي
https://forum.arabictrader.com/t195197.html
أحد الإضافات الجديده للغة MQL4 وهو كيفية إستخدام الكيبورد في لغة MQL4 مثلا عند الضغط على زر معين على الكيبورد تريد فتح صفقه أو إغلاق صفقه أو تريد التحكم مهما كان نوع التحكم الذي تريده في الشارت
سنبدأ بمثال بسيط
أولا نستخدم الداله OnChartEvent ونوع الحدث في هذه الحاله هو
كود PHP:
CHARTEVENT_KEYDOWN
مثال
كود PHP:
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
if(id==CHARTEVENT_KEYDOWN)
{
// write action type
Print(sparam);
}
}
في البداية كل زر في الكيبورد يأخذ رقم معين في المثال السابقه المتغير sparam هو الذي يحمل رقم الزر الذي تم الضغط عليه
فمثلا حرف a يحمل الرقم 30
بالتالي عندما أريد وضع الشرط فيمكن أن يكون
كود PHP:
if(id==CHARTEVENT_KEYDOWN)
{
if(sparam==30)Print("A button is pressed");
}
وهكذا مع باقي الأحرف
في هذا المثال سوف اقوم بعمل إكسبرت بسيط يفتح صفقات بيع وشراء عند الضغط على أحرف B و S ويغلق الصفقه عند الضغط على حرف C
بالنسبه لأمر الشراء فحرف b يأخذ الرقم 48
كود PHP:
if(sparam==48)
{
//b
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
ticket=OrderSend(Symbol(),OP_BUY,NormalizeDouble(Lots,Lot_Decimal),NormalizeDouble(Ask,Digits),3*P,SL,TP,"EA",0,0,Blue);
PlaySound("Alert.wav");
}
أمر البيع حرف s يأخذ الرقم 31
كود PHP:
else if(sparam==31)
{
//s
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
ticket=OrderSend(Symbol(),OP_SELL,NormalizeDouble(Lots,Lot_Decimal),NormalizeDouble(Bid,Digits),3*P,SL,TP,"EA",0,0,Red);
PlaySound("Alert.wav");
}
أخيرا أمر إغلاق الصفقه حرف c يأخذ الرقم 46
كود PHP:
else if(sparam==46)
{
//c
CloseOrders();
}
أخيرا مرفق الإكسبرت