بارك الله فيك أخي الكريم .. جربت ما قلت ولاحظت أن عدد الصفقات أصبح أقل بسبب الشروط وهذا جيد .. لكن ما يزال الاكسبيرت يفتح أكثر من صفقة عند تحقق أحد الشروط .. لا اعرف هل السبب هو في الثواني أم شيء آخر ..
Printable View
بارك الله فيكم اخوتي المبرمجين
عندي سؤال عن :
الهدف المخفي : كيف يستخدم
والاستوب المخفي : كيف يستخدم
وما هي ميزات هذه الطريقة باستخدام الاهداف والاستوبات المخفية ؟
وشكرا جزيلا
فائدة الهدف و الأستوب المخفي لأن بعض البروكرات لا تسمع بوضع هدف أقل من 5 نقاط مثلا أو ستوب أقل من 5 نقاط ( أو على حسب البروكر ) بالتالي في الهدف المخفي يمكنك تحديد حتى هدف 1 نقطه فقط وعندما يصل السعر للهدف سوف تغلق الصفقه
بالنسبه طريقة إستخدامه الفكره في أن تجعل الإكسبرت يتابع سعر دخول كل صفقة بدون وضع هدف و ستوب لها فيكون الهدف و الأستوب 0 لكن يقارن الإكسبرت عندما يصبح سعر السعر الحالي أكبر من سعر الدخول + عدد نقاط الهدف مثلا فيقوم بإغلاق الصفقه مباشرة
مثال راجل الإكسبرت المرفق
السلام عليكم
ممكن طريقة التعامل مع مؤشر يعطي نفس القيمة عند ظهور من عدمه
اول صورة عند عدم ظهور الخط الاحمر
http://im39.gulfup.com/BNeJf.png
وهنا عند ظهور الخط الاحمر
http://im39.gulfup.com/cQ0zK.png
مع العلم انه لا توجد اي مشكلة في الخط الازرق
طبعا عند البيع والشراء عادي لكن المشكلة تظهر
عند اضافة شرط الاغلاق عند ظهور اشارة معاكسة
والمشكلة في الشراء يصبح الاكسبيرت يفتح ويغلق الصفقات
الصفقة في نفص الوقت
بارك الله فيكم اخواني ابحث عن افضل طريقه لصفقه لها اهداف متعدده مثلا الوت للصفقه ٨ وهدف ٤ عشرين نقطه و ٢ ثلاثين و٢ اربعين للمثال
انا فكرت افتح ثلاث اوامر شراء لكل عقد له هدف اذا فيه طريقه افضل اكون شاكر لكم
تسلم بش مهندس جزاك الله خير
بارك الله فيك استاذ اسامة
ارجوا من الاستاذ اسامة او اي مبرمج لديه الوقت الاطلاع على هذا الموضوع لاعطاء رايه
https://forum.arabictrader.com/t1803...ml#post2727670
السلام عليكم ورحمة الله وبركاته
تحية طيبة اخواني الكرام
أواجه مشكلة بدالة المضاعفات حيث لا يتم اختصار اللوت العشري المكون من 3 أرقام بعد الفاصلة إلى رقمين... والناتجة عن المضاعفة x1.5 مع اللوت الابتدائي 0.01
في حين لا يوجد أي مشكلة عند استخدام المضاعفة x2
لدينا الكود التالي والمرجو فضلا لا أمرا تعديله بما يتناسب مع طريقتي البرمجية البسيطة :asvc:
وعملت محاولة باستبدال الجزءكود PHP:void BuyOrder()
{
double profit = 0;
int cnt = OrdersHistoryTotal();
for (int i=cnt-1; i >= 0; i--)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
if ((OrderType() == OP_BUY || OrderType() == OP_SELL) && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
profit = OrderProfit();
CurrentLots = OrderLots(); // take lots from the last order
break;
}
}
if (profit > 0) // had profit
{
CurrentLots = CurrentLots * LotsMpOnProfit ;
if (LotsResetOnProfit)
CurrentLots = Lots;
}
else if (profit < 0) // had loss
{
CurrentLots = CurrentLots * 1.5 ;
if (LotsResetOnLoss) CurrentLots = Lots;
}
if (CurrentLots > 100)
{
CurrentLots = 100;
}
double lotvalue = CurrentLots;
if (lotvalue < MarketInfo(Symbol(), MODE_MINLOT)) // make sure lot is not smaller than allowed value
{
lotvalue = MarketInfo(Symbol(), MODE_MINLOT);
}
if (lotvalue > MarketInfo(Symbol(), MODE_MAXLOT)) // make sure lot is not greater than allowed value
{
lotvalue = MarketInfo(Symbol(), MODE_MAXLOT);
}
double SL = Ask - Stoploss*PipValue*Point;
if (Stoploss == 0) SL = 0;
double TP = Ask + Takeprofit1*PipValue*Point;
if (Takeprofit1 == 0) TP = 0;
FirstLotsMgm = false;
int ticket = -1;
if (ECNBroker)
ticket = OrderSend(Symbol(), OP_BUY, lotvalue, Ask, Slippage, 0, 0, "My Expert", MagicNo, 0, Blue);
else
ticket = OrderSend(Symbol(), OP_BUY, lotvalue, Ask, Slippage, SL, TP, "My Expert", MagicNo, 0, Blue);
if (ticket > -1)
{
if (ECNBroker)
{
OrderSelect(ticket, SELECT_BY_TICKET);
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));
}
}
else
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
}
بهذا الجزء باضافة الوظيفة MathMinكود PHP:else if (profit < 0) // had loss
{
CurrentLots = CurrentLots * 1.5;
if (LotsResetOnLoss) CurrentLots = Lots;
}
لا يوجد أخطاء بالكمبايل وعند التجربة بالباكتيست والديمو يفتح الاكسبيرت صفقات المضاعفات بلوت 0.01كود PHP:else if (profit < 0) // had loss
{
CurrentLots=MathMin(CurrentLots*1.5,MarketInfo(Symbol(),MODE_MAXLOT));
if (LotsResetOnLoss) CurrentLots = Lots;
}
وجزاكم الله خيرا :eh_s(7):