المشاركة الأصلية كتبت بواسطة hassanfcr
#include <Trade\Trade.mqh> // استدعاء مكتبة التجارة
CTrade trade; // كائن للتعامل مع الصفقات
double lastHigh = 0; // تعريف المتغير لتخزين أعلى سعر
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// Initialization: تعيين أعلى سعر أولي
lastHigh = iHigh(NULL, 0, 0);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
// الحصول على السعر الحالي
double currentPrice = iHigh(NULL, 0, 0); // أعلى سعر للشمعة الحالية
// إذا ارتفع السعر بمقدار 70 نقطة (700 نقطة بمعنى MetaTrader)
if(currentPrice - lastHigh >= 70 * _Point)
{
// فتح صفقة بيع
OpenSellTrade();
// تحديث قيمة lastHigh للسعر الحالي
lastHigh = currentPrice;
}
}
//+------------------------------------------------------------------+
//| OpenSellTrade function |
//+------------------------------------------------------------------+
void OpenSellTrade()
{
// إعدادات حجم الصفقة (0.1 لوت)
double lotSize = 0.1;
// إعدادات وقف الخسارة وجني الأرباح
double stopLoss = 30 * _Point;
double takeProfit = 60 * _Point;
// السعر الحالي
double price = SymbolInfoDouble(_Symbol, SYMBOL_BID);
// فتح صفقة بيع
trade.Sell(lotSize, _Symbol, price, price + stopLoss, price - takeProfit, "Sell on 70 point rise");
}
//+------------------------------------------------------------------+
المرجو تصحيح هدا الكود :كلما صعد السعر70 نقطة يفعل بيع بهدف 60نقطة ووقف خسارة 30 نقطة