1 مرفق (ق) مرحبا هناك ،
أحاول العثور على بعض برامج الترميز التي قد ترغب في إعادة ترميز برنامج Trade-Manager-EA الذي دفعته.
سابق ROOIKOOL (عضو مبرمج جيد جدًا) سابقًا مشهور جدًا وقد قام بترميز هذا EA بالنسبة لي.
لكنه لم يعد إجراء بعض التغييرات في EA.
لذلك هناك 2-3 ميزات لا تعمل بشكل صحيح كما ينبغي.
هنا هو الكود:
#property حقوق الطبع والنشر مشفرة بواسطة rooicol
#import stdlib.ex4
سلسلة ErrorDescription (int ErrorCode) ؛
extern int DefaultSL = 400؛
extern bool HighLowSL = صواب ؛
extern int BarCount = 3؛
extern int Gap = 100؛
extern int HighLowSafetyPoints = 100؛
extern int DefaultTP = 500؛
extern int DefaultCPPercent = 50؛
منطوق خارجي HardSLTPActive = خطأ؛
extern int HardSLTPDistance = 400؛
extern intBeboints = 200؛
bool outtern TrendLineSL = False؛
extern int TrendLineSLDistance = 40؛
extern bool MaintainSession = False؛
extern int MyMagicNumber = 555؛
منطوق خارجي ObjectOrders = صحيح ؛
extern bool ObjectStopOrders = False؛
extern int SendMultipleOrders = 1؛
extern WingdingObjectOrders = 251؛
extern int DistancePendingOrder = 40؛
الكثير مزدوجة الخارجي = 0 ؛
خطر مزدوج خارجي = 2 ؛
extern double CommissionPerLot = 0؛
extern int TradeObjectsFontSize = 8؛
extern int TradeWingDingFontSize = 35؛
extern int TradeObjectsXDistance = 10؛
extern int TradeObjectsYDistance = -34؛
extern int TradeObjectsXSpace = 30؛
extern int TradeObjectsYSpace = 28؛
منطوق خارجي DeleteOnly = صواب؛
extern bool ShowConfirm = False؛
اللون الخارجي BuyMarketColour = الأخضر ؛
اللون الخارجي BuyLimitColour = أخضر ؛
اللون الخارجي BuyStopColour = الأخضر ؛
اللون الخارجي CloseColour = رمادي ؛
اللون الخارجي SellMarketColour = المارون.
اللون الخارجي SellLimitColour = المارون.
اللون الخارجي SellStopColour = المارون.
extern int LineStyleEntry = STYLE_SOLID؛
extern int LineStyleSL = STYLE_DASH؛
extern int LineStyleTP = STYLE_DOT؛
extern int LineStyleCP = STYLE_DASHDOT؛
اللون الخارجي Colour1 = برتقالي.
اللون الخارجي Colour2 = DarkGray ؛
اللون الخارجي Colour3 = الجير ؛
اللون الخارجي Colour4 = أخضر ؛
اللون الخارجي Colour5 = الأزرق ؛
اللون الخارجي PendingColour = SkyBlue؛
منطوق خارجي UseWingDings = خطأ
extern int OrderLineThickness = 5؛
extern int OrderLineLength = 10؛
اللون الخارجي EntryColour = الأزرق ؛
اللون الخارجي SLColour = برتقالي.
اللون الخارجي TPColour = DarkGray؛
اللون الخارجي CPColour = الجير ؛
extern exing = 74؛
منطوق خارجي RunInfiniteLoop = False؛
extern int RunIntervalMS = 100؛
bool FirstRun = صحيح؛
bool AutoBE = خطأ؛
بداية int ()
{
بينما (IsStopped () == الكاذبة)
{
RefreshRates ()؛
إذا (MyMagicNumber == 0)
تعليق (يجب ألا يكون MyMagicNumber 0!) ؛
//--------- DELETE HISTORY TRADE LEESEL ----------------------------------- -------
عن (int i = OrdersHistoryTotal () - 10؛ ilt؛ OrdersHistoryTotal ()؛ i )
{
OrderSelect (ط، SELECT_BY_POS، MODE_HISTORY)؛
int TicketNo = OrderTicket () ؛
ObjectDelete (إدارة التجارة EA: Line Line TicketNo) ؛
ObjectDelete (إدارة التجارة EA: Line SL TicketNo) ؛
ObjectDelete (إدارة التجارة EA: Line TP TicketNo) ؛
ObjectDelete (إدارة التجارة EA: خط CP TicketNo) ؛
ObjectDelete (إدارة التجارة EA: الدخول عن بعد TicketNo) ؛
ObjectDelete (إدارة التجارة EA: المسافة SL TicketNo) ؛
ObjectDelete (إدارة التجارة EA: المسافة TP TicketNo) ؛
ObjectDelete (إدارة التجارة EA: المسافة CP TicketNo) ؛
ObjectDelete (إدارة التجارة EA: Trend Line TicketNo) ؛
ObjectDelete (إدارة التجارة EA: تذكرة بدون إدخال TicketNo) ؛
ObjectDelete (إدارة التجارة EA: تذكرة رقم SL TicketNo) ؛
ObjectDelete (إدارة التجارة EA: تذكرة رقم TP TicketNo)
ObjectDelete (إدارة التجارة EA: تذكرة رقم CP TicketNo) ؛
ObjectDelete (إدارة التجارة EA: الدخول إلى الجناح TicketNo) ؛
ObjectDelete (إدارة التجارة EA: Wingding SL TicketNo) ؛
ObjectDelete (إدارة التجارة EA: Wingding TP TicketNo) ؛
ObjectDelete (إدارة التجارة EA: Wingding CP TicketNo) ؛
GlobalVariableDel (إدارة التجارة EA: خط CP TicketNo) ؛
}
//--------- خلق مستويات التجارة ---------------------------------------- ------
int j = 0 ؛
ثابت ثابت TrailActive.
{
OrderSelect (ط، SELECT_BY_POS)؛
إذا (OrderSymbol () == رمز () OrderMagicNumber ()! = MyMagicNumber)
{
ي ؛
TicketNo = OrderTicket ()؛
string TicketNoStr = DoubleToStr (TicketNo، 0)؛
التبديل (OrderType ())
{
الحالة 0: int Direction = 1 ؛ مضاعفة السعر = العطاء ؛ منطقي معلق = خطأ ؛ استراحة؛
الحالة 2:
الحالة 4: الاتجاه = 1 ؛ السعر = المزايدة. مضاعفة PendingPrice = اسأل ؛ في انتظار = صحيح. استراحة؛
الحالة 1: الاتجاه = -1 ؛ السعر = يسأل؛ في انتظار = خطأ. استراحة؛
الحالة 3:
الحالة 5: الاتجاه = -1 ؛ السعر = يسأل؛ PendingPrice = المزايدة. في انتظار = صحيح.
}
إذا (ي == 1)
اللون اللون = اللون 1 ؛
إذا (ي == 2)
اللون = Colour2.
إذا (ي == 3)
اللون = Colour3.
إذا (ي == 4)
اللون = Colour4.
إذا (JGT؛ = 5)
اللون = Colour5.
إذا (UseWingDings == الكاذبة)
{
ObjectCreate (إدارة التجارة EA: Line Line TicketNo، OBJ_HLINE، 0، OrderOpenTime ()، OrderOpenPrice ())؛
ObjectSet (إدارة التجارة EA: إدخال سطر TicketNo ، OBJPROP_COLOR ، Color) ؛
ObjectSet (إدارة التجارة EA: Line Line TicketNo، OBJPROP_STYLE، LineStyleEntry)؛
double LineEntryPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: إدخال سطر TicketNo ، OBJPROP_PRICE1) ، أرقام) ؛
ObjectCreate (إدارة التجارة EA: تذكرة بدون إدخال تذكرة جديدة ، OBJ_TEXT ، 0 ، وقت [80] ، LineEntryPrice)
ObjectSetText (إدارة التجارة EA: تذكرة بدون إدخال TicketNo ، TicketNoStr ، 10 ، Arial ، Color) ؛
ObjectMove (إدارة التجارة EA: تذكرة بدون إدخال تذكرة جديدة ، 0 ، وقت [80] ، LineEntryPrice)
}
آخر
{
ObjectCreate (إدارة التجارة EA: Line Line TicketNo و OBJ_TREND و 0 و OrderOpenTime () و OrderOpenPrice () و Time [iBarShift (Symbol () و Period () و OrderOpenTime ()) OrderLineLength] و OrderOpenPrice ())
ObjectSet (إدارة التجارة EA: إدخال سطر TicketNo و OBJPROP_WIDTH و OrderLineThickness) ؛
ObjectSet (إدارة التجارة EA: إدخال خط TicketNo و OBJPROP_COLOR و EntryColour) ؛
ObjectSet (إدارة التجارة EA: إدخال سطر TicketNo ، OBJPROP_RAY ، False) ؛
LineEntryPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: إدخال سطر TicketNo ، OBJPROP_PRICE1) ، أرقام) ؛
//ObjectCreate (Trade Management EA: Wingding Entry TicketNo، OBJ_TEXT، 0، OrderOpenTime ()، OrderOpenPrice ())؛
//ObjectSetText (إدارة التجارة EA: الدخول إلى الجناح TicketNo ، CharToStr (Wingding) ، 10 ، WingDings ، EntryColour) ؛
//ObjectMove (إدارة التجارة EA: Wingding Entry TicketNo، 0، OrderOpenTime ()، LineEntryPrice)؛
}
إذا (OrderType () لتر، = 1)
{
ObjectMove (إدارة التجارة EA: Line Line TicketNo ، 0 ، OrderOpenTime () ، OrderOpenPrice ())
ObjectMove (إدارة التجارة EA: Line Line TicketNo ، 1 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، OrderOpenPrice ())؛
}
إذا (OrderType () GT؛ = 2)
{
ObjectMove (إدارة التجارة EA: Line Line TicketNo ، 0 ، OrderOpenTime () ، LineEntryPrice) ؛
ObjectMove (إدارة التجارة EA: Line Line TicketNo ، 1 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، LineEntryPrice)؛
}
إذا (قيد الانتظار == صحيح)
مضاعف PriceEntry = PendingPrice؛
آخر
PriceEntry = الأسعار.
int EntryDistance = ((PriceEntry-LineEntryPrice) * اتجاه)نقطة ؛
السلسلة EntryDistanceStr = DoubleToStr (EntryDistance، 0)؛
إذا (UseWingDings == صحيح)
color DistanceEntryColour = EntryColour؛
آخر
DistanceEntryColour = اللون.
ObjectCreate (إدارة التجارة EA: الدخول عن بعد TicketNo ، OBJ_TEXT ، 0 ، Time [iBarShift (Symbol () ، Period () ، OrderOpenTime ()) 10] ، LineEntryPrice) ؛
ObjectSetText (إدارة التجارة EA: الدخول عن بعد TicketNo ، EntryDistanceStr ، 13 ، Arial ، DistanceEntryColour) ؛
ObjectMove (إدارة التجارة EA: الدخول عن بعد TicketNo ، 0 ، الوقت [iBarShift (Symbol () ، Period () ، OrderOpenTime ()) 10] ، LineEntryPrice)
إذا (HighLowSL == صحيح)
{
إذا (التوجيه == 1)
{
Double LineSLInitialPrice = Low [iLowest (Symbol ()، Period ()، MODE_LOW، BarCount)] - (Gap * Point)؛
إذا (LineSLInitialPricegt؛ (OrderOpenPrice () - (HighLowSafetyPoints * نقطة)))
LineSLInitialPrice = (OrderOpenPrice () - (HighLowSafetyPoints * نقطة))؛
}
إذا (التوجيه == - 1)
{
LineSLInitialPrice = السامي [iHighest (رمز ()، الفترة ()، MODE_HIGH، BarCount)] (الفجوة * نقطة).
إذا (LineSLInitialPricelt؛ (OrderOpenPrice () (HighLowSafetyPoints * نقطة)))
LineSLInitialPrice = (OrderOpenPrice () (HighLowSafetyPoints * نقطة))؛
}
}
آخر
LineSLInitialPrice = OrderOpenPrice () - (التوجيه * * DefaultSL نقطة).
إذا (OrderStopLoss ()! = 0)
LineSLInitialPrice = OrderStopLoss () (HardSLTPDistance * نقطة * التوجيه)؛
إذا (UseWingDings == الكاذبة)
{
ObjectCreate (إدارة التجارة EA: Line SL TicketNo، OBJ_HLINE، 0، OrderOpenTime ()، LineSLInitialPrice)؛
ObjectSet (إدارة التجارة EA: Line SL TicketNo، OBJPROP_COLOR، Color)؛
ObjectSet (إدارة التجارة EA: Line SL TicketNo، OBJPROP_STYLE، LineStyleSL)؛
double LineSLPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line SL TicketNo، OBJPROP_PRICE1)، Digits)؛
ObjectMove (إدارة التجارة EA: Line SL TicketNo، 0، OrderOpenTime ()، LineSLPrice)؛
ObjectCreate (إدارة التجارة EA: تذكرة رقم SL TicketNo و OBJ_TEXT و 0 و Time [80] و LineSLPrice)
ObjectSetText (إدارة التجارة EA: رقم التذاكر SL TicketNo ، TicketNoStr ، 10 ، Arial ، Color) ؛
ObjectMove (إدارة التجارة EA: تذكرة رقم SL TicketNo ، 0 ، الوقت [80] ، LineSLPrice) ؛
}
آخر
{
ObjectCreate (إدارة التجارة EA: Line SL TicketNo، OBJ_TREND، 0، OrderOpenTime ()، LineSLInitialPrice، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، LineSLInitialPrice)؛
ObjectSet (إدارة التجارة EA: Line SL TicketNo، OBJPROP_WIDTH، OrderLineThickness)؛
ObjectSet (إدارة التجارة EA: Line SL TicketNo، OBJPROP_COLOR، SLColour)؛
ObjectSet (إدارة التجارة EA: Line SL TicketNo، OBJPROP_RAY، False)؛
LineSLPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line SL TicketNo، OBJPROP_PRICE1)، Digits)؛
ObjectMove (إدارة التجارة EA: Line SL TicketNo، 0، OrderOpenTime ()، LineSLPrice)؛
ObjectMove (إدارة التجارة EA: Line SL TicketNo ، 1 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، LineSLPrice)؛
//ObjectCreate (إدارة التجارة EA: Wingding SL TicketNo و OBJ_TEXT و 0 و OrderOpenTime () و LineSLInitialPrice)
//ObjectSetText (إدارة التجارة EA: Wingding SL TicketNo، CharToStr (Wingding)، 10، WingDings، SLColour)؛
//ObjectMove (إدارة التجارة EA: Wingding SL TicketNo، 0، OrderOpenTime ()، LineSLPrice)؛
}
SLDistance مزدوج = ((LineSLPrice-OrderOpenPrice ()) * اتجاه)(نقطة) ؛
السلسلة SLDistanceStr = DoubleToStr (SLDistance، 0)؛
إذا (UseWingDings == صحيح)
اللون DistanceSLColour = SLColour ؛
آخر
DistanceSLColour = اللون.
ObjectCreate (إدارة التجارة EA: المسافة SL TicketNo و OBJ_TEXT و 0 و Time [iBarShift (Symbol () و Period () و OrderOpenTime ()) 20] و LineSLPrice)
ObjectSetText (إدارة التجارة EA: Distance SL TicketNo، SLDistanceStr، 13، Arial، DistanceSLColour)؛
ObjectMove (إدارة التجارة EA: Distance SL TicketNo ، 0 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) 20]، LineSLPrice)؛
إذا (TrendLineSL == TrueOrderType () لتر، = 1)
{
إذا (OrderType () == 0)
{
مزدوج TrendLinePrice1 = منخفض [0] - (250 * نقطة) ؛
مزدوج TrendLinePrice2 = منخفض [0] - (75 * نقطة) ؛
}
إذا (OrderType () == 1)
{
TrendLinePrice1 = السامي [0] (250 * نقطة).
TrendLinePrice2 = السامي [0] (75 * نقطة).
}
ObjectCreate (Trade Management EA: Trend Line TicketNo، OBJ_TREND، 0، Time [30]، TrendLinePrice1، Time [0]، TrendLinePrice2)؛
ObjectSet (إدارة التجارة EA: Trend Line TicketNo، OBJPROP_RAY، True)؛
double TrendLineCurrentValue = ObjectGetValueByShift (إدارة التجارة EA: خط الاتجاه TicketNo ، 0) - (TrendLineSLDistance * Point * Direction) ؛
ObjectMove (إدارة التجارة EA: Line SL TicketNo ، 0 ، OrderOpenTime () ، TrendLineCurrentValue)
ObjectMove (إدارة التجارة EA: Line SL TicketNo ، 1 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، TrendLineCurrentValue)؛
}
إذا (TrendLineSL == الكاذبة)
ObjectDelete (إدارة التجارة EA: Trend Line TicketNo) ؛
if (It = = True OrderType () lt؛ = 1EntryDistance gt؛ = AutoBEPoints
{
ObjectMove (إدارة التجارة EA: Line SL TicketNo ، 0 ، OrderOpenTime () ، OrderOpenPrice ())؛
ObjectMove (إدارة التجارة EA: Line SL TicketNo ، 1 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، OrderOpenPrice ())؛
}
إذا (TrailActive == TrueOrderType () لتر، = 1)
{
إذا (OrderType () == 0)
double TrailMovePrice = iLow (Symbol ()، 240،1) - (Gap * Point)؛
إذا (OrderType () == 1)
سعر TrailCom = مرتفع (الرمز () ، 240،1) (Gap * Point) ؛
إذا ((TrailMovePrice-LineSLPrice) * Directiongt. (نقطة2))
{
ObjectMove (إدارة التجارة EA: Line SL TicketNo ، 0 ، OrderOpenTime () ، TrailMovePrice) ؛
ObjectMove (إدارة التجارة EA: Line SL TicketNo ، 1 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، TrailMovePrice)؛
}
ObjectMove (إدارة التجارة EA: Line TP TicketNo ، 0 ، OrderOpenTime () ، OrderOpenPrice () (Point * 10000 * Direction)) ؛
ObjectMove (إدارة التجارة EA: Line TP TicketNo ، 1 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، OrderOpenPrice () (Point * 10000 * Direction))؛
}
إذا (OrderTakeProfit ()! = 0)
خط مزدوج TPInitialPrice = OrderTakeProfit () - (HardSLTPDistance * Point * Direction) ؛
آخر
LineTPInitialPrice = OrderOpenPrice () (التوجيه * * DefaultTP نقطة).
إذا (UseWingDings == الكاذبة)
{
ObjectCreate (إدارة التجارة EA: Line TP TicketNo، OBJ_HLINE، 0، OrderOpenTime ()، LineTPInitialPrice)؛
ObjectSet (إدارة التجارة EA: Line TP TicketNo، OBJPROP_COLOR، Color)؛
ObjectSet (إدارة التجارة EA: Line TP TicketNo، OBJPROP_STYLE، LineStyleTP)؛
double LineTPPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line TP TicketNo، OBJPROP_PRICE1)، Digits)؛
ObjectMove (إدارة التجارة EA: Line TP TicketNo ، 0 ، OrderOpenTime () ، LineTPPrice) ؛
ObjectCreate (إدارة التجارة EA: تذكرة رقم TP TicketNo و OBJ_TEXT و 0 و Time [80] و LineTPPrice)
ObjectSetText (إدارة التجارة EA: رقم البطاقة TP TicketNo ، TicketNoStr ، 10 ، Arial ، Color) ؛
ObjectMove (إدارة التجارة EA: تذكرة رقم TP TicketNo ، 0 ، Time [80] ، LineTPPrice) ؛
}
آخر
{
ObjectCreate (إدارة التجارة EA: Line TP TicketNo، OBJ_TREND، 0، OrderOpenTime ()، LineTPInitialPrice، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]؛
ObjectSet (إدارة التجارة EA: Line TP TicketNo، OBJPROP_WIDTH، OrderLineThickness)؛
ObjectSet (إدارة التجارة EA: خط TP TicketNo و OBJPROP_COLOR و TPColour) ؛
ObjectSet (إدارة التجارة EA: سطر TP TicketNo و OBJPROP_RAY و False) ؛
LineTPPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line TP TicketNo، OBJPROP_PRICE1)، Digits)؛
ObjectMove (إدارة التجارة EA: Line TP TicketNo ، 0 ، OrderOpenTime () ، LineTPPrice) ؛
ObjectMove (إدارة التجارة EA: Line TP TicketNo ، 1 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، LineTPPrice)؛
//ObjectCreate (إدارة التجارة EA: Wingding TP TicketNo، OBJ_TEXT، 0، OrderOpenTime ()، LineTPInitialPrice)؛
//ObjectSetText (إدارة التجارة EA: Wingding TP TicketNo ، CharToStr (Wingding) ، 10 ، WingDings ، TPColour) ؛
//ObjectMove (إدارة التجارة EA: Wingding TP TicketNo، 0، OrderOpenTime ()، LineTPPrice)؛
}
TPDistance مزدوج = ((LineTPPrice-OrderOpenPrice ()) * اتجاه)(نقطة) ؛
السلسلة TPDistanceStr = DoubleToStr (TPDistance، 0)؛
إذا (UseWingDings == صحيح)
color DistanceTPColour = TPColour؛
آخر
DistanceTPColour = اللون.
ObjectCreate (إدارة التجارة EA: المسافة TP TicketNo و OBJ_TEXT و 0 و Time [iBarShift (Symbol () و Period () و OrderOpenTime ()) 20] و LineTPPrice)
ObjectSetText (إدارة التجارة EA: Distance TP TicketNo ، TPDistanceStr ، 13 ، Arial ، DistanceTPColour)
ObjectMove (إدارة التجارة EA: Distance TP TicketNo ، 0 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) 20]، LineTPPrice)؛
إذا (DefaultCPPercentgt، 0)
{
double LineCPInitialPrice = GlobalVariableGet (إدارة التجارة EA: Line CP TicketNo) ؛
إذا (LineCPInitialPrice == 0)
LineCPInitialPrice = LineTPPrice (التوجيه * 20 * نقطة).
إذا (UseWingDings == كاذبة)
{
ObjectCreate (إدارة التجارة EA: خط CP TicketNo و OBJ_HLINE و 0 و OrderOpenTime () و LineCPInitialPrice) ؛
ObjectSet (إدارة التجارة EA: خط CP TicketNo ، OBJPROP_COLOR ، Color) ؛
ObjectSet (إدارة التجارة EA: سطر CP TicketNo و OBJPROP_STYLE و LineStyleCP) ؛
double LineCPPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line CP TicketNo، OBJPROP_PRICE1)، Digits)؛
ObjectMove (إدارة التجارة EA: خط CP TicketNo ، 0 ، OrderOpenTime () ، LineCPPrice) ؛
ObjectCreate (إدارة التجارة EA: تذكرة رقم CP TicketNo، OBJ_TEXT، 0، Time [80]، LineCPPrice)؛
ObjectSetText (إدارة التجارة EA: تذكرة رقم CP TicketNo و TicketNoStr و 10 و Arial و Color) ؛
ObjectMove (إدارة التجارة EA: تذكرة رقم CP TicketNo ، 0 ، Time [80] ، LineCPPrice)
}
آخر
{
ObjectCreate (إدارة التجارة EA: Line CP TicketNo، OBJ_TREND، 0، OrderOpenTime ()، LineCPInitialPrice، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، LineCPInitialPrice)؛
ObjectSet (إدارة التجارة EA: سطر CP TicketNo و OBJPROP_WIDTH و OrderLineThickness)
ObjectSet (إدارة التجارة EA: خط CP TicketNo و OBJPROP_COLOR و CPColour) ؛
ObjectSet (إدارة التجارة EA: سطر CP TicketNo و OBJPROP_RAY و False) ؛
LineCPPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: سطر CP TicketNo ، OBJPROP_PRICE1) ، أرقام) ؛
ObjectMove (إدارة التجارة EA: خط CP TicketNo ، 0 ، OrderOpenTime () ، LineCPPrice) ؛
ObjectMove (إدارة التجارة EA: Line CP TicketNo ، 1 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، LineCPPrice)؛
//ObjectCreate (إدارة التجارة EA: Wingding CP TicketNo، OBJ_TEXT، 0، OrderOpenTime ()، LineCPInitialPrice)؛
//ObjectSetText (إدارة التجارة EA: Wingding CP TicketNo، CharToStr (Wingding)، 10، WingDings، CPColour)؛
//ObjectMove (إدارة التجارة EA: Wingding CP TicketNo، 0، OrderOpenTime ()، LineCPPrice)؛
}
CPDistance مزدوج = ((LineCPPrice-OrderOpenPrice ()) * اتجاه)(نقطة) ؛
السلسلة CPDistanceStr = DoubleToStr (CPDistance، 0)؛
إذا (UseWingDings == صحيح)
color DistanceCPColour = CPColour؛
آخر
DistanceCPColour = اللون.
ObjectCreate (إدارة التجارة EA: المسافة CP TicketNo و OBJ_TEXT و 0 و Time [iBarShift (Symbol () و Period () و OrderOpenTime ()) 10] و LineCPPrice)
ObjectSetText (إدارة التجارة EA: Distance CP TicketNo، CPDistanceStr، 13، Arial، DistanceCPColour)؛
ObjectMove (إدارة التجارة EA: المسافة CP TicketNo ، 0 ، الوقت [iBarShift (Symbol () ، Period () ، OrderOpenTime ()) 10] ، LineCPPrice)؛
GlobalVariableSet (إدارة التجارة EA: خط CP TicketNo و LineCPPrice) ؛
int ClosePercent = StrToDouble (ObjectDescription (إدارة التجارة EA: Line CP TicketNo)) ؛
إذا (ClosePercent == 0)
ObjectSetText (إدارة التجارة EA: Line CP TicketNo ، DoubleToStr (DefaultCPPercent، 0))؛
}
آخر
{
ObjectDelete (إدارة التجارة EA: المسافة CP TicketNo) ؛
ObjectDelete (إدارة التجارة EA: تذكرة رقم CP TicketNo) ؛
ObjectDelete (إدارة التجارة EA: خط CP TicketNo) ؛
GlobalVariableDel (إدارة التجارة EA: خط CP TicketNo) ؛
}
//--------- MODIFY SL AND TP --------------------------------------- -------
Double LineSLPriceAdjusted = LineSLPrice- (اتجاه * HardSLTPDistance * نقطة)
double LineTPPriceAdjusted = LineTPPrice (Direction * HardSLTPDistance * Point)؛
إذا (MathAbs (OrderOpenPrice () - LineEntryPrice) GT؛ (نقطة2))
منطقي EntryDifference = صحيح؛
آخر
EntryDifference = خطأ.
إذا (MathAbs (OrderStopLoss () - LineSLPriceAdjusted) GT؛ (نقطة2))
bool SLDifference = صحيح؛
آخر
SLDifference = خطأ.
إذا (MathAbs (OrderTakeProfit () - LineTPPriceAdjusted) GT؛ (نقطة2))
منطقي TPDifference = صحيح ؛
آخر
TPDifference = خطأ.
إذا ((HardSLTPActive == صحيح (SLDifference == صحيح || TPDifference == صحيح)) || (EntryDifference == TrueOrderType () GT؛ = 2))
{
OrderModify (TicketNo، LineEntryPrice، LineSLPriceAdjusted، LineTPPriceAdjusted، 0)؛
النوم (250)؛
}
OrderSelect (ط، SELECT_BY_POS)؛
RefreshRates ()؛
//--------- EA CLOSE ------------------------------------- -----
إذا (((الأسعار وLineSLPrice) * اتجاه) لتر. (نقطة2))
منطقي SLHit = صحيح ؛
آخر
SLHit = خطأ.
إذا (((LineTPPrice برايس) * اتجاه) لتر. (نقطة2))
منطقي TPHit = صحيح ؛
آخر
TPHit = خطأ.
إذا (((LineCPPrice برايس) * اتجاه) لتر. (نقطة2))
منطقي CPHit = صحيح ؛
آخر
CPHit = خطأ.
إذا (((HardSLTPActive == TrueHardSLTPDistancegt، 0) || (HardSLTPActive == خطأ)) == SLHit TrueOrderType () لتر، = 1)
RunClose (TicketNo و LineSLPrice و OrderLots () و EA CLOSE) ؛
إذا (((HardSLTPActive == TrueHardSLTPDistancegt، 0) || (HardSLTPActive == خطأ)) == TPHit TrueOrderType) لتر (. = 1)
RunClose (TicketNo و LineTPPrice و OrderLots () و EA CLOSE) ؛
إذا (DefaultCPPercentgt، 0CPHit == TrueOrderType () لتر، = 1)
{
ضعف LotPoint = MarketInfo (Symbol () ، MODE_LOTSTEP) ؛
doubleLots Close = MathRound ((OrderLots () * ClosePercent * 0.01)LotPoint) * LotPoint؛
RunClose (TicketNo و LineCPPrice و CloseLots و EA CLOSE) ؛
}
}
}
//--------- أوامر معلقة ------------------------------------- --------------------
لـ (i = 0 ؛ ilt ؛ 10 ؛ i )
{
double LineBuyLimitPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line Buy Limit i، OBJPROP_PRICE1)، Digits)؛
إذا (LineBuyLimitPrice! = 0)
{
ObjectMove (إدارة التجارة EA: Line Buy Limit i، 0، TimeCurrent ()، LineBuyLimitPrice)؛
ObjectMove (إدارة التجارة EA: Line Buy Limit i، 1، Time [10]، LineBuyLimitPrice)؛
ObjectMove (إدارة التجارة EA: تذكرة لا حدود الشراء i ، 0 ، الوقت [80] ، LineBuyLimitPrice) ؛
//ObjectMove (إدارة التجارة EA: حدود شراء الجناح ، 0 ، TimeCurrent () ، LineBuyLimitPrice)
ضعف BuyLimitDistance = (Ask-LineBuyLimitPrice)(نقطة) ؛
string BuyLimitDistanceStr = DoubleToStr (BuyLimitDistance، 0)؛
ObjectSetText (إدارة التجارة EA: حد شراء المسافة i ، BuyLimitDistanceStr ، 13 ، Arial ، PendingColour) ؛
ObjectMove (إدارة التجارة EA: حد الشراء عن بعد i ، 0 ، Time [10] ، LineBuyLimitPrice) ؛
إذا ((اسأل-LineBuyLimitPrice) لتر. (نقطة2))
{
SendBuyMarketOrder (صحيح)؛
ObjectDelete (إدارة التجارة EA: Line Buy Limit i) ؛
ObjectDelete (إدارة التجارة EA: تذكرة لا حدود الشراء i) ؛
ObjectDelete (إدارة التجارة EA: حد الشراء عن بعد i) ؛
ObjectDelete (إدارة التجارة EA: حدود شراء الجناح i) ؛
}
}
آخر
{
ObjectDelete (إدارة التجارة EA: تذكرة لا حدود الشراء i) ؛
ObjectDelete (إدارة التجارة EA: حد الشراء عن بعد i) ؛
ObjectDelete (إدارة التجارة EA: حدود شراء الجناح i) ؛
}
double LineBuyStopPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line Buy Stop i، OBJPROP_PRICE1)، Digits)؛
إذا (LineBuyStopPrice! = 0)
{
ObjectMove (إدارة التجارة EA: Line Buy Stop i، 0، TimeCurrent ()، LineBuyStopPrice)؛
ObjectMove (إدارة التجارة EA: Line Buy Stop i ، 1 ، Time [10] ، LineBuyStopPrice)
ObjectMove (إدارة التجارة EA: تذكرة No Buy Stop i، 0، Time [80]، LineBuyStopPrice)؛
//ObjectMove (إدارة التجارة EA: إيقاف شراء Wingding i ، 0 ، TimeCurrent () ، LineBuyStopPrice)
ضعف BuyStopDistance = (LineBuyStopPrice-Ask)(نقطة) ؛
string BuyStopDistanceStr = DoubleToStr (BuyStopDistance، 0)؛
ObjectSetText (إدارة التجارة EA: إيقاف Buy Stop i و BuyStopDistanceStr و 13 و Arial و PendingColour) ؛
ObjectMove (إدارة التجارة EA: بعد Buy Buy Stop i، 0، Time [10]، LineBuyStopPrice)؛
إذا ((LineBuyStopPrice-طرح) لتر. (نقطة2))
{
SendBuyMarketOrder (صحيح)؛
ObjectDelete (إدارة التجارة EA: Line Buy Stop i) ؛
ObjectDelete (إدارة التجارة EA: تذكرة No Buy Stop i)؛
ObjectDelete (إدارة التجارة EA: Stop Buy Stop i) ؛
ObjectDelete (إدارة التجارة EA: إيقاف شراء Wingding i) ؛
}
}
آخر
{
ObjectDelete (إدارة التجارة EA: تذكرة No Buy Stop i)؛
ObjectDelete (إدارة التجارة EA: Stop Buy Stop i) ؛
ObjectDelete (إدارة التجارة EA: إيقاف شراء Wingding i) ؛
}
double LineSellLimitPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: حد بيع الخط i ، OBJPROP_PRICE1) ، أرقام)
إذا (LineSellLimitPrice! = 0)
{
ObjectMove (إدارة التجارة EA: حد بيع الخط i ، 0 ، TimeCurrent () ، LineSellLimitPrice)
ObjectMove (إدارة التجارة EA: Line Sell Limit i، 1، Time [10]، LineSellLimitPrice)؛
ObjectMove (إدارة التجارة EA: تذكرة لا حدود البيع i ، 0 ، Time [80] ، LineSellLimitPrice) ؛
//ObjectMove (إدارة التجارة EA: حدود بيع الجناح i ، 0 ، TimeCurrent () ، LineSellLimitPrice)
ضعف SellLimitDistance = (LineSellLimitPrice-Bid)(نقطة) ؛
string SellLimitDistanceStr = DoubleToStr (SellLimitDistance، 0)؛
ObjectSetText (إدارة التجارة EA: حد البيع عن بعد i ، SellLimitDistanceStr ، 13 ، Arial ، PendingColour) ؛
ObjectMove (إدارة التجارة EA: حد البيع عن بعد i ، 0 ، Time [10] ، LineSellLimitPrice) ؛
إذا ((LineSellLimitPrice-المزايدة) لتر. (نقطة2))
{
SendSellMarketOrder (صحيح)؛
ObjectDelete (إدارة التجارة EA: Line Sell Limit i)؛
ObjectDelete (إدارة التجارة EA: تذكرة لا حدود البيع i) ؛
ObjectDelete (إدارة التجارة EA: حد البيع عن بعد i) ؛
ObjectDelete (إدارة التجارة EA: Wingding Sell Limit i)؛
}
}
آخر
{
ObjectDelete (إدارة التجارة EA: تذكرة لا حدود البيع i) ؛
ObjectDelete (إدارة التجارة EA: حد البيع عن بعد i) ؛
ObjectDelete (إدارة التجارة EA: Wingding Sell Limit i)؛
}
double LineSellStopPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line Sell Stop i، OBJPROP_PRICE1)، Digits)؛
إذا (LineSellStopPrice! = 0)
{
ObjectMove (إدارة التجارة EA: Line Sell Stop i، 0، TimeCurrent ()، LineSellStopPrice)؛
ObjectMove (إدارة التجارة EA: Line Sell Stop i، 1، Time [10]، LineSellStopPrice)؛
ObjectMove (إدارة التجارة EA: تذكرة No Stop Stop i، 0، Time [80]، LineSellStopPrice)؛
//ObjectMove (إدارة التجارة EA: إيقاف بيع Wingding i ، 0 ، TimeCurrent () ، LineSellStopPrice) ؛
ضعف SellStopDistance = (Bid-LineSellStopPrice)(نقطة) ؛
string SellStopDistanceStr = DoubleToStr (SellStopDistance، 0)؛
ObjectSetText (إدارة التجارة EA: إيقاف بيع عن بعد i ، SellStopDistanceStr ، 13 ، Arial ، PendingColour) ؛
ObjectMove (إدارة التجارة EA: Stop Sell Stop i ، 0 ، Time [10] ، LineSellStopPrice)
إذا ((المزايدة-LineSellStopPrice) لتر. (نقطة2))
{
SendSellMarketOrder (صحيح)؛
ObjectDelete (إدارة التجارة EA: Line Sell Stop i)؛
ObjectDelete (إدارة التجارة EA: تذكرة No Stop Stop i)
ObjectDelete (إدارة التجارة EA: Stop Sell Stop i) ؛
ObjectDelete (إدارة التجارة EA: Wingding Sell Stop i)؛
}
}
آخر
{
ObjectDelete (إدارة التجارة EA: تذكرة No Stop Stop i)
ObjectDelete (إدارة التجارة EA: Stop Sell Stop i) ؛
ObjectDelete (إدارة التجارة EA: Wingding Sell Stop i)؛
}
}
//--------- أهداف النظام ------------------------------------- --------------------
ثابت SIObjectOrders.
ثابت SITradeObjectsFontSize.
ثابت SITradeWingDingFontSize كثافة.
ثابت SITradeObjectsXDistance.
ثابت SITradeObjectsYDistance.
ثابت SITradeObjectsYSpace.
ثابت SIObjectStopOrders كثافة العمليات ؛
منطقي InputsChanged = خطأ ؛
إذا (FIRSTRUN == الكاذبة)
{
إذا (SIObjectOrders! = ObjectOrders)
InputsChanged = صحيح.
إذا (SITradeObjectsFontSize! = TradeObjectsFontSize)
InputsChanged = صحيح.
إذا (SITradeWingDingFontSize! = TradeWingDingFontSize)
InputsChanged = صحيح.
if (SITradeObjects Distance! = TradeObjects Distance)
InputsChanged = صحيح.
if (SITradeObjects Distance! = TradeObjects Distance)
InputsChanged = صحيح.
إذا (SITradeObjectsYSpace! = TradeObjectsYSpace)
InputsChanged = صحيح.
إذا (SIObjectStopOrders! = ObjectStopOrders)
InputsChanged = صحيح.
}
SIObjectOrders = ObjectOrders.
SITradeObjectsFontSize = TradeObjectsFontSize.
SITradeWingDingFontSize = TradeWingDingFontSize.
SITradeObjectsXDistance = TradeObjectsXDistance.
SITradeObjectsYDistance = TradeObjectsYDistance.
SITradeObjectsYSpace = TradeObjectsYSpace.
SIObjectStopOrders = ObjectStopOrders.
إذا (SendMultipleOrderslt؛ = 0)
SendMultipleOrders = 1؛
إذا (ObjectOrders == صحيح)
{
إذا (FIRSTRUN == == FalseInputsChanged الكاذبة)
{
int BuyMarketX = ObjectGet (إدارة التجارة EA: Buy Market، OBJPROP_XDISTANCE)؛
int BuyMarketY = ObjectGet (إدارة التجارة EA: Buy Market، OBJPROP_YDISTANCE)؛
الباحث BuyMarketPresent = ObjectFind (إدارة التجارة EA: Buy Market)
إذا(
(DeleteOnly == خطأ (BuyMarketX! = TradeObjectsXDistance || BuyMarketY! = TradeObjectsYDistance TradeObjectsFontSize TradeObjectsYSpace)) ||
(DeleteOnly == TrueBuyMarketPresent! = 0)
)
{
لـ (int k = 0؛ klt؛ SendMultipleOrders؛ k )
SendBuyMarketOrder (خطأ)؛
ObjectDelete (إدارة التجارة EA: شراء السوق) ؛
}
int CloseX = ObjectGet (إدارة التجارة EA: إغلاق ، OBJPROP_XDISTANCE) ؛
int CloseY = ObjectGet (إدارة التجارة EA: إغلاق ، OBJPROP_YDISTANCE) ؛
int ClosePresent = ObjectFind (إدارة التجارة EA: إغلاق) ؛
إذا(
(DeleteOnly == خطأ (CloseX! = TradeObjectsXDistance || CloseY! = TradeObjectsYDistance (TradeObjectsFontSize * 3) (TradeObjectsYSpace * 3))) ||
(DeleteOnly == TrueClosePresent! = 0)
)
{
SendCloseOrder ()؛
ObjectDelete (إدارة التجارة EA: إغلاق) ؛
}
int SetBEX = ObjectGet (إدارة التجارة EA: Set BE، OBJPROP_XDISTANCE)؛
int SetBEY = ObjectGet (إدارة التجارة EA: Set BE، OBJPROP_YDISTANCE)؛
int SetBEPresent = ObjectFind (إدارة التجارة EA: Set BE)؛
إذا(
(DeleteOnly == خطأ (SetBEX! = TradeObjectsXDistance || SetBEY! = TradeObjectsYDistance (TradeObjectsFontSize * 4) (TradeObjectsYSpace * 4))) ||
(DeleteOnly == TrueSetBEPresent! = 0)
)
{
SetBE ()؛
ObjectDelete (إدارة التجارة EA: Set BE) ؛
}
int AutoBEX = ObjectGet (إدارة التجارة EA: AutoBE ، OBJPROP_XDISTANCE) ؛
int AutoBEY = ObjectGet (إدارة التجارة EA: AutoBE، OBJPROP_YDISTANCE)؛
int AutoBEPresent = ObjectFind (إدارة التجارة EA: AutoBE)؛
إذا(
(DeleteOnly == خطأ (AutoBEX! = TradeObjectsXDistance || AutoBEY! = TradeObjectsYDistance (TradeObjectsFontSize * 5) (TradeObjectsYSpace * 5))) ||
(DeleteOnly == TrueAutoBEPresent! = 0)
)
{
ثابت LastAutoBETime كثافة العمليات ؛
إذا (TimeLocal () - LastAutoBETimegt؛ = 2)
{
إذا (AutoBE == صحيح)
AutoBE = خطأ.
آخر
AutoBE = صحيح.
ObjectDelete (إدارة التجارة EA: AutoBE) ؛
}
LastAutoBETime = TimeLocal ()؛
}
int TrailX = ObjectGet (إدارة التجارة EA: Trail ، OBJPROP_XDISTANCE) ؛
int TrailY = ObjectGet (إدارة التجارة EA: Trail ، OBJPROP_YDISTANCE) ؛
int TrailPresent = ObjectFind (إدارة التجارة EA: Trail) ؛
إذا(
(DeleteOnly == خطأ (TrailX! = TradeObjectsXDistance || TrailY! = TradeObjectsYDistance (TradeObjectsFontSize * 6) (TradeObjectsYSpace * 6))) ||
(DeleteOnly == TrueTrailPresent! = 0)
)
{
ثابت الباحث LastTrailTime.
إذا (TimeLocal () - LastTrailTimegt؛ = 2)
{
إذا (TrailActive == صحيح)
{
TrailActive = خطأ.
لـ (int l = 0؛ llt؛ OrdersTotal ()؛ l )
{
OrderSelect (ل، SELECT_BY_POS)؛
إذا (OrderType () == 0)
{
ObjectMove (إدارة التجارة EA: Line TP TicketNo ، 0 ، OrderOpenTime () ، Bid (Point * DefaultTP))
ObjectMove (إدارة التجارة EA: Line TP TicketNo ، 1 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، Bid (Point * DefaultTP))؛
}
إذا (OrderType () == 1)
{
ObjectMove (إدارة التجارة EA: Line TP TicketNo، 0، OrderOpenTime ()، Ask- (Point * DefaultTP))؛
ObjectMove (إدارة التجارة EA: Line TP TicketNo ، 1 ، Time [iBarShift (Symbol ()، Period ()، OrderOpenTime ()) OrderLineLength]، Ask- (Point * DefaultTP))؛
}
}
}
آخر
TrailActive = صحيح.
ObjectDelete (إدارة التجارة EA: درب) ؛
}
LastTrailTime = TimeLocal ()؛
}
int SellMarketX = ObjectGet (إدارة التجارة EA: Sell Market، OBJPROP_XDISTANCE)؛
int SellMarketY = ObjectGet (إدارة التجارة EA: Sell Market، OBJPROP_YDISTANCE)؛
int SellMarketPresent = ObjectFind (إدارة التجارة EA: سوق البيع) ؛
إذا(
(DeleteOnly == خطأ (SellMarketX! = TradeObjectsXDistance || SellMarketY! = TradeObjectsYDistance (TradeObjectsFontSize * 8) (TradeObjectsYSpace * 8))) ||
(DeleteOnly == TrueSellMarketPresent! = 0)
)
{
لـ (k = 0 ؛ klt ؛ SendMultipleOrders ؛ k )
SendSellMarketOrder (خطأ)؛
ObjectDelete (إدارة التجارة EA: سوق البيع) ؛
}
int BuyLimitX = ObjectGet (إدارة التجارة EA: حد الشراء ، OBJPROP_XDISTANCE) ؛
int BuyLimitY = ObjectGet (إدارة التجارة EA: حد الشراء ، OBJPROP_YDISTANCE) ؛
int BuyLimitPresent = ObjectFind (إدارة التجارة EA: حد الشراء) ؛
إذا(
(DeleteOnly == خطأ (BuyLimitX! = TradeObjectsXDistance || BuyLimitY! = TradeObjectsYDistance (TradeObjectsFontSize * 2) (TradeObjectsYSpace * 2))) ||
(DeleteOnly == TrueBuyLimitPresent! = 0)
)
{
SendBuyLimitOrder ()؛
ObjectDelete (إدارة التجارة EA: حد الشراء) ؛
}
int SellLimitX = ObjectGet (إدارة التجارة EA: حد البيع ، OBJPROP_XDISTANCE) ؛
int SellLimitY = ObjectGet (إدارة التجارة EA: حد البيع ، OBJPROP_YDISTANCE) ؛
int SellLimitPresent = ObjectFind (إدارة التجارة EA: حد البيع) ؛
إذا(
(DeleteOnly == خطأ (SellLimitX! = TradeObjectsXDistance || SellLimitY! = TradeObjectsYDistance (TradeObjectsFontSize * 7) (TradeObjectsYSpace * 7))) ||
(DeleteOnly == TrueSellLimitPresent! = 0)
)
{
SendSellLimitOrder ()؛
ObjectDelete (إدارة التجارة EA: حد البيع) ؛
}
إذا (ObjectStopOrders == صحيح)
{
int BuyStopX = ObjectGet (إدارة التجارة EA: Buy Stop، OBJPROP_XDISTANCE)؛
int BuyStopY = ObjectGet (إدارة التجارة EA: Buy Stop، OBJPROP_YDISTANCE)
int BuyStopPresent = ObjectFind (إدارة التجارة EA: Buy Stop)؛
إذا(
(DeleteOnly == خطأ (BuyStopX! = TradeObjectsXDistance || BuyStopY! = TradeObjectsYDistance)) ||
(DeleteOnly == TrueBuyStopPresent! = 0)
)
{
SendBuyStopOrder ()؛
ObjectDelete (إدارة التجارة EA: Buy Stop) ؛
}
int SellStopX = ObjectGet (إدارة التجارة EA: Sell Stop، OBJPROP_XDISTANCE)؛
int SellStopY = ObjectGet (إدارة التجارة EA: Sell Stop، OBJPROP_YDISTANCE)؛
int SellStopPresent = ObjectFind (إدارة التجارة EA: بيع إيقاف) ؛
إذا(
(DeleteOnly == خطأ (SellStopX! = TradeObjectsXDistance || SellStopY! = TradeObjectsYDistance (TradeObjectsFontSize * 9) (TradeObjectsYSpace * 9))) ||
(DeleteOnly == TrueSellStopPresent! = 0)
)
{
SendSellStopOrder ()؛
ObjectDelete (إدارة التجارة EA: إيقاف البيع) ؛
}
}
}
ObjectCreate (إدارة التجارة EA: Buy Market، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: Buy Market ، CharToStr (WingdingObjectOrders) ، TradeWingDingFontSize ، WingDings ، BuyMarketColour) ؛
ObjectSet (إدارة التجارة EA: Buy Market ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: Buy Market ، OBJPROP_XDISTANCE ، TradeObjectsXDistance) ؛
ObjectSet (إدارة التجارة EA: Buy Market ، OBJPROP_YDISTANCE ، TradeObjectsYDistance TradeObjectsFontSize TradeObjectsYSpace)؛
ObjectCreate (إدارة التجارة EA: Buy Market Label، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: شراء تسمية السوق ، MARKET ، TradeObjectsFontSize ، Arial ، BuyMarketColour) ؛
ObjectSet (إدارة التجارة EA: شراء Market Market ، OBJPROP_CORNER ، 1)
ObjectSet (إدارة التجارة EA: شراء Market Market ، OBJPROP_XDISTANCE ، TradeObjectsXDistance TradeObjectsXSpace) ؛
ObjectSet (إدارة التجارة EA: شراء تسمية السوق ، OBJPROP_YDISTANCE ، TradeObjectsYDistance TradeObjectsFontSize TradeObjectsYSpace TradeWingDingFontSize-TradeObjectsFontSize)
ObjectCreate (إدارة التجارة EA: إغلاق ، OBJ_LABEL ، 0،0،0) ؛
ObjectSetText (إدارة التجارة EA: إغلاق ، CharToStr (WingdingObjectOrders) ، TradeWingDingFontSize ، WingDings ، CloseColour) ؛
ObjectSet (إدارة التجارة EA: إغلاق ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: إغلاق ، OBJPROP_XDISTANCE ، TradeObjectsXDistance) ؛
ObjectSet (إدارة التجارة EA: إغلاق ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 3) (TradeObjectsYSpace * 3)) ؛
ObjectCreate (إدارة التجارة EA: إغلاق العلامة ، OBJ_LABEL ، 0،0،0)
ObjectSetText (إدارة التجارة EA: إغلاق التسمية ، إغلاق ، TradeObjectsFontSize ، Arial ، CloseColour)
ObjectSet (إدارة التجارة EA: إغلاق العلامة ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: إغلاق التسمية ، OBJPROP_XDISTANCE ، TradeObjectsXDistance TradeObjectsXSpace) ؛
ObjectSet (إدارة التجارة EA: إغلاق التسمية و OBJPROP_YDISTANCE و TradeObjectsYDistance (TradeObjectsFontSize * 3) (TradeObjectsYSpace * 3)
ObjectCreate (إدارة التجارة EA: Set BE، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: Set BE ، CharToStr (WingdingObjectOrders) ، TradeWingDingFontSize ، WingDings ، CloseColour) ؛
ObjectSet (إدارة التجارة EA: Set BE، OBJPROP_CORNER، 1)؛
ObjectSet (إدارة التجارة EA: Set BE ، OBJPROP_XDISTANCE ، TradeObjectsXDistance) ؛
ObjectSet (إدارة التجارة EA: Set BE ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 4) (TradeObjectsYSpace * 4))؛
ObjectCreate (إدارة التجارة EA: Set BE Label، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: تعيين BE تسمية ، SET BE ، TradeObjectsFontSize ، Arial ، CloseColour)
ObjectSet (إدارة التجارة EA: Set BE Label، OBJPROP_CORNER، 1)؛
ObjectSet (إدارة التجارة EA: تعيين BE Label و OBJPROP_XDISTANCE و TradeObjectsXDistance TradeObjectsXSpace)
ObjectSet (إدارة التجارة EA: Set BE Label ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 4) (TradeObjectsYSpace * 4) TradeWingDingFontSize-TradeObjectsFontSize)؛
إذا (AutoBE == صحيح)
int AutoBEWingDing = 252؛
آخر
AutoBEWingDing = WingdingObjectOrders.
ObjectCreate (إدارة التجارة EA: AutoBE ، OBJ_LABEL ، 0،0،0) ؛
ObjectSetText (إدارة التجارة EA: AutoBE ، CharToStr (AutoBEWingDing) ، TradeWingDingFontSize ، WingDings ، CloseColour) ؛
ObjectSet (إدارة التجارة EA: AutoBE ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: AutoBE ، OBJPROP_XDISTANCE ، TradeObjectsXDistance) ؛
ObjectSet (إدارة التجارة EA: AutoBE ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 5) (TradeObjectsYSpace * 5))؛
ObjectCreate (إدارة التجارة EA: AutoBE Label، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: تسمية AutoBE و AUTO BE و TradeObjectsFontSize و Arial و CloseColour)
ObjectSet (إدارة التجارة EA: AutoBE Label ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: تسمية AutoBE ، OBJPROP_XDISTANCE ، TradeObjectsXDistance TradeObjectsXSpace) ؛
ObjectSet (إدارة التجارة EA: AutoBE Label و OBJPROP_YDISTANCE و TradeObjectsYDistance (TradeObjectsFontSize * 5) (TradeObjectsYSpace * 5) TradeWingDingFontSize-TradeObjectsFontSize)؛
إذا (TrailActive == صحيح)
int TrailWingDing = 252؛
آخر
TrailWingDing = WingdingObjectOrders.
ObjectCreate (إدارة التجارة EA: Trail ، OBJ_LABEL ، 0،0،0) ؛
ObjectSetText (إدارة التجارة EA: Trail ، CharToStr (TrailWingDing) ، TradeWingDingFontSize ، WingDings ، CloseColour) ؛
ObjectSet (إدارة التجارة EA: Trail ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: Trail ، OBJPROP_XDISTANCE ، TradeObjectsXDistance) ؛
ObjectSet (إدارة التجارة EA: Trail ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 6) (TradeObjectsYSpace * 6))؛
ObjectCreate (إدارة التجارة EA: Trail Label، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: Trail Label و TRAIL و TradeObjectsFontSize و Arial و CloseColour) ؛
ObjectSet (إدارة التجارة EA: Trail Label ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: Trail Label و OBJPROP_XDISTANCE و TradeObjectsXDistance TradeObjectsXSpace) ؛
ObjectSet (إدارة التجارة EA: Trail Label ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 6) (TradeObjectsYSpace * 6) TradeWingDingFontSize-TradeObjectsFontSize)؛
ObjectCreate (إدارة التجارة EA: Sell Market، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: بيع السوق ، CharToStr (WingdingObjectOrders) ، TradeWingDingFontSize ، WingDings ، SellMarketColour) ؛
ObjectSet (إدارة التجارة EA: بيع السوق ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: سوق البيع ، OBJPROP_XDISTANCE ، TradeObjectsXDistance)
ObjectSet (إدارة التجارة EA: Sell Market ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 8) (TradeObjectsYSpace * 8))؛
ObjectCreate (إدارة التجارة EA: Sell Market Label، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: بيع تسمية السوق ، MARKET ، TradeObjectsFontSize ، Arial ، SellMarketColour) ؛
ObjectSet (إدارة التجارة EA: Sell Market Label، OBJPROP_CORNER، 1)؛
ObjectSet (إدارة التجارة EA: بيع تسمية السوق ، OBJPROP_XDISTANCE ، TradeObjectsXDistance TradeObjectsXSpace)
ObjectSet (إدارة التجارة EA: بيع تسمية السوق ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 8) (TradeObjectsYSpace * 8) TradeWingDingFontSize-TradeObjectsFontSize)؛
ObjectCreate (إدارة التجارة EA: حد الشراء ، OBJ_LABEL ، 0،0،0) ؛
ObjectSetText (إدارة التجارة EA: حد الشراء ، CharToStr (WingdingObjectOrders) ، TradeWingDingFontSize ، WingDings ، BuyLimitColour) ؛
ObjectSet (إدارة التجارة EA: حد الشراء ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: حد الشراء ، OBJPROP_XDISTANCE ، TradeObjectsXDistance) ؛
ObjectSet (إدارة التجارة EA: حد الشراء ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 2) (TradeObjectsYSpace * 2)) ؛
ObjectCreate (إدارة التجارة EA: شراء حد التسمية ، OBJ_LABEL ، 0،0،0)
ObjectSetText (إدارة التجارة EA: تسمية حد الشراء ، LIMIT ، TradeObjectsFontSize ، Arial ، BuyLimitColour) ؛
ObjectSet (إدارة التجارة EA: تسمية حد الشراء ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: تسمية حد الشراء ، OBJPROP_XDISTANCE ، TradeObjectsXDistance TradeObjectsXSpace) ؛
ObjectSet (إدارة التجارة EA: تسمية حد الشراء ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 2) (TradeObjectsYSpace * 2) TradeWingDingFontSize-TradeObjectsFontSize)؛
ObjectCreate (إدارة التجارة EA: حد البيع ، OBJ_LABEL ، 0،0،0) ؛
ObjectSetText (إدارة التجارة EA: حد البيع ، CharToStr (WingdingObjectOrders) ، TradeWingDingFontSize ، WingDings ، SellLimitColour)
ObjectSet (إدارة التجارة EA: حد البيع ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: حد البيع ، OBJPROP_XDISTANCE ، TradeObjectsXDistance) ؛
ObjectSet (إدارة التجارة EA: حد البيع ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 7) (TradeObjectsYSpace * 7)) ؛
ObjectCreate (إدارة التجارة EA: بيع حد التسمية ، OBJ_LABEL ، 0،0،0) ؛
ObjectSetText (إدارة التجارة EA: تسمية حد البيع ، LIMIT ، TradeObjectsFontSize ، Arial ، SellLimitColour)
ObjectSet (إدارة التجارة EA: بيع حد التسمية ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: بيع حد التسمية ، OBJPROP_XDISTANCE ، TradeObjectsXDistance TradeObjectsXSpace) ؛
ObjectSet (إدارة التجارة EA: تسمية حد البيع ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 7) (TradeObjectsYSpace * 7) TradeWingDingFontSize-TradeObjectsFontSize)؛
إذا (ObjectStopOrders == صحيح)
{
ObjectCreate (إدارة التجارة EA: Buy Stop، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: Buy Stop ، CharToStr (WingdingObjectOrders) ، TradeWingDingFontSize ، WingDings ، BuyStopColour) ؛
ObjectSet (إدارة التجارة EA: Buy Stop، OBJPROP_CORNER، 1)؛
ObjectSet (إدارة التجارة EA: إيقاف الشراء ، OBJPROP_XDISTANCE ، TradeObjectsXDistance) ؛
ObjectSet (إدارة التجارة EA: إيقاف الشراء ، OBJPROP_YDISTANCE ، TradeObjectsYDistance) ؛
ObjectCreate (إدارة التجارة EA: Buy Stop Label، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: Buy Stop Label ، STOP ، TradeObjectsFontSize ، Arial ، BuyStopColour) ؛
ObjectSet (إدارة التجارة EA: Buy Stop Label ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: شراء إيقاف التسمية ، OBJPROP_XDISTANCE ، TradeObjectsXDistance TradeObjectsXSpace)
ObjectSet (إدارة التجارة EA: Buy Stop Label ، OBJPROP_YDISTANCE ، TradeObjectsYDistance TradeWingDingFontSize-TradeObjectsFontSize)؛
ObjectCreate (إدارة التجارة EA: Sell Stop، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: بيع إيقاف ، CharToStr (WingdingObjectOrders) ، TradeWingDingFontSize ، WingDings ، SellStopColour) ؛
ObjectSet (إدارة التجارة EA: Sell Stop ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: إيقاف البيع ، OBJPROP_XDISTANCE ، TradeObjectsXDistance) ؛
ObjectSet (إدارة التجارة EA: Sell Stop ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 9) (TradeObjectsYSpace * 9))؛
ObjectCreate (إدارة التجارة EA: Sell Stop Label، OBJ_LABEL، 0،0،0)؛
ObjectSetText (إدارة التجارة EA: بيع إيقاف التسمية ، STOP ، TradeObjectsFontSize ، Arial ، SellStopColour)
ObjectSet (إدارة التجارة EA: Sell Stop Label ، OBJPROP_CORNER ، 1) ؛
ObjectSet (إدارة التجارة EA: بيع إيقاف التسمية ، OBJPROP_XDISTANCE ، TradeObjectsXDistance TradeObjectsXSpace) ؛
ObjectSet (إدارة التجارة EA: Sell Stop Label ، OBJPROP_YDISTANCE ، TradeObjectsYDistance (TradeObjectsFontSize * 9) (TradeObjectsYSpace * 9) TradeWingDingFontSize-TradeObjectsFontSize)؛
}
آخر
{
ObjectDelete (إدارة التجارة EA: Buy Stop) ؛
ObjectDelete (إدارة التجارة EA: شراء إيقاف التسمية) ؛
ObjectDelete (إدارة التجارة EA: إيقاف البيع) ؛
ObjectDelete (إدارة التجارة EA: بيع وقف التسمية) ؛
}
FIRSTRUN = الكاذبة.
}
آخر
{
ObjectDelete (إدارة التجارة EA: شراء السوق) ؛
ObjectDelete (إدارة التجارة EA: حد الشراء) ؛
ObjectDelete (إدارة التجارة EA: Buy Stop) ؛
ObjectDelete (إدارة التجارة EA: إغلاق) ؛
ObjectDelete (إدارة التجارة EA: Set BE) ؛
ObjectDelete (إدارة التجارة EA: AutoBE) ؛
ObjectDelete (إدارة التجارة EA: درب) ؛
ObjectDelete (إدارة التجارة EA: سوق البيع) ؛
ObjectDelete (إدارة التجارة EA: حد البيع) ؛
ObjectDelete (إدارة التجارة EA: إيقاف البيع) ؛
ObjectDelete (إدارة التجارة EA: شراء تسمية السوق) ؛
ObjectDelete (إدارة التجارة EA: تسمية حد الشراء) ؛
ObjectDelete (إدارة التجارة EA: شراء إيقاف التسمية) ؛
ObjectDelete (إدارة التجارة EA: إغلاق التسمية) ؛
ObjectDelete (إدارة التجارة EA: Set BE Label)؛
ObjectDelete (إدارة التجارة EA: تسمية AutoBE) ؛
ObjectDelete (إدارة التجارة EA: Trail Label) ؛
ObjectDelete (إدارة التجارة EA: بيع تسمية السوق) ؛
ObjectDelete (إدارة التجارة EA: تسمية حد البيع) ؛
ObjectDelete (إدارة التجارة EA: بيع وقف التسمية) ؛
}
//--------- الجلسة الرئيسية ----------------------------------------- --------------------
ثابت التالي NextModifyTime.
إذا (MaintainSession == TrueTimeLocal () GT، NextModifyTime)
{
ط = 0؛
بينما (IsTradeContextBusy () == صحيح)
{
النوم (100)؛
ط ؛
إذا (IGT؛ 100)
عودة (0)؛
}
منطقي IsOrderPresent = FALSE؛
ل(ط = 0؛ ILT، OrdersTotal ()؛ ط )
{
OrderSelect (ط، SELECT_BY_POS)؛
إذا (OrderMagicNumber () == MyMagicNumber)
IsOrderPresent = صحيح.
}
إذا (IsOrderPresent == FALSE)
{
إذا (OrderSend (رمز ()، OP_BUYLIMIT، MarketInfo (رمز ()، MODE_MINLOT)، نقطة، 0،0،0،0، MyMagicNumber، 0) لتر، 0)
{
string ErrorString = ErrorDescription (GetLastError ())؛
تعليق (احتفظ بجلسة فشل النظام المفتوحة. السبب: ، ErrorString) ؛
طباعة (فشل جلسة الجلسة الرئيسية.
عودة (0)؛
}
}
ل(ط = 0؛ ILT، OrdersTotal ()؛ ط )
{
OrderSelect (ط، SELECT_BY_POS)؛
إذا (OrderMagicNumber () == MyMagicNumber)
{
إذا (OrderTakeProfit ()! = 0)
TPPrice مزدوج = 0 ؛
إذا (OrderTakeProfit () == 0)
TPPrice = (نقطة * 100000)؛
int ms1 = GetTickCount () ؛
إذا (OrderModify (OrderTicket ()، OrderOpenPrice ()، 0، TPPrice، 0) == الكاذبة)
{
ErrorString مع = ERRORDESCRIPTION (يقوم GetlastError ())؛
تعليق (فشل تعديل ترتيب الجلسة. السبب: ، ErrorString) ؛
طباعة (فشل تعديل ترتيب الجلسة الرئيسية. السبب: ، ErrorString) ؛
}
آخر
{
إذا (RunInfiniteLoop == صحيح)
int المدة = 28 ؛
آخر
مدة = 25؛
NextModifyTime = TimeLocal () المدة.
int ms2 = GetTickCount () ؛
int ExeTime = ms2-ms1؛
طباعة (احتفظ بوقت تنفيذ الجلسة: ، ExeTime) ؛
}
}
}
}
WindowRedraw ()؛
إذا (RunInfiniteLoop == صحيح)
النوم (RunIntervalMS)؛
آخر
استراحة؛
}
عودة (0)؛
}
bool RunClose (int TicketNumber ، نقرا مزدوجا ClickedPrice ، DoubleLots ، سلسلة MyComment)
{
بينما (IsTradeContextBusy () == صحيح)
{
تعليق (RUN CLOSE: في انتظار السياق التجاري حتى تصبح غير صالحة) ؛
النوم (10)؛
أنا ط ؛
إذا (IGT، 500)
{
تعليق (RUN CLOSE: TIMEOUT TRADE CONTACT)
PlaySound (timeout.wav)؛
عودة كاذبة)؛
}
}
RefreshRates ()؛
تعليق (RUN CLOSE: موقع الإغلاق) ؛
int ms1 = GetTickCount () ؛
سلسلة ClickedTime = TimeToStr (TimeCurrent () ، TIME_SECONDS) ؛
doubleClick Bid = Bid؛
ClickedAsk مزدوج = اسأل ؛
OrderSelect (TicketNumber، SELECT_BY_TICKET)؛
إذا (OrderClose (TicketNumber، CloseLots، OrderClosePrice ()، و 100) == TRUE)
{
int ms2 = GetTickCount () ؛
OrderSelect (TicketNumber، SELECT_BY_TICKET)؛
string CloseTimeDMY = StringSubstr (TimeToStr (OrderCloseTime ()، TIME_DATE)، 8،2) - StringSubstr (TimeToStr (OrderCloseTime ()، TIME_DATE)، 5،2) - StringSubstr (TimeToStr) 0،4)؛
string CloseTimeHMS = TimeToStr (OrderCloseTime ()، TIME_SECONDS)؛
ExeTime مزدوج = ms2-ms1 ؛
التبديل (OrderType ())
{
الحالة 0: السلسلة Direction = SELL؛ ضعف الانزلاق = (OrderClosePrice () - ClickedPrice)(نقطة * 10) ؛ كسر
الحالة 1: الاتجاه = BUY ؛ Slippage = (ClickedPrice-OrderClosePrice ())(Point * 10)؛
}
طباعة (انزلاق: ، انزلاق) ؛
طباعة (وقت التنفيذ: ، ExeTime) ؛
int Handle = FileOpen (سجل التنفيذa.csv ، FILE_READ | FILE_WRITE) ؛
FileClose (مقبض)؛
FileDelete (Execution Loga.csv) ؛
السلسلة FileName = Execution Log AccountNumber () EXECUTION LOG.csv؛
التعامل مع = FileOpen (اسم الملف، FILE_CSV | FILE_READ | FILE_WRITE، '،')؛
إذا (Handlegt، 0)
{
FileSeek (مقبض، 0، SEEK_END)؛
FileWrite (المؤشر، ACCOUNTNUMBER ()، TicketNumber، CloseTimeDMY، CloseTimeHMS، OrderSymbol ()، MyComment والتوجيه، OrderLots ()، ClickedTime، ClickedBid، ClickedAsk، ClickedPrice، OrderClosePrice ()، انزلاق، ExeTime)؛
FileClose (مقبض)؛
PlaySound (ok.wav)؛
تعليق()؛
}
آخر
{
PlaySound (timeout.wav)؛
string ErrorString = ErrorDescription (GetLastError ())؛
تعليق (RUN CLOSE: FILE OPEN FAILED. REASON:، ErrorString)؛
طباعة (FILE OPEN FAILED. REASON:، ErrorString)؛
}
}
آخر
{
PlaySound (timeout.wav)؛
ErrorString مع = ERRORDESCRIPTION (يقوم GetlastError ())؛
تعليق (RUN CLOSE: فشل ترتيب الطلب
طباعة (فشل ترتيب الطلب. السبب: ، ErrorString) ؛
عودة كاذبة)؛
}
العودة (صحيح)؛
}
int SendBuyMarketOrder (منطقي مخفي معلق)
{
إذا (SendMultipleOrders == 1)
{
ثابت LastBuyMarketTime كثافة العمليات ؛
إذا (TimeLocal () - LastBuyMarketTimelt؛ = 2)
عودة (0)؛
LastBuyMarketTime = TimeLocal ()؛
}
إذا (SendMultipleOrdersgt؛ 1)
ShowConfirm = صحيح.
الكثير = CalculateLots ()؛
إذا (ShowConfirm == == TrueHiddenPending الكاذبة)
{
int MessageBoxResult = MessageBox (Buy Symbol () DoubleToStr (Lots، 2) lots in market؟ ،، 0x00000004 | 0x00000030)؛
إذا (MessageBoxResult! = 6)
عودة (0)؛
}
RefreshRates ()؛
int TicketNumber = OrderSend (Symbol () ، OP_BUY ، Lots ، Ask ، 0،0،0)؛
إذا (TicketNumbergt، 0)
PlaySound (ok.wav)؛
آخر
{
PlaySound (timeout.wav)؛
string ErrorString = ErrorDescription (GetLastError ())؛
تعليق (فشل أمر شراء السوق. السبب: ، ErrorString) ؛
طباعة (فشل طلب شراء السوق. السبب: ، ErrorString) ؛
}
عودة (0)؛
}
int SendBuyLimitOrder ()
{
ثابت الباحث LastBuyLimitTime.
إذا (TimeLocal () - LastBuyLimitTimelt؛ = 2)
عودة (0)؛
LastBuyLimitTime = TimeLocal ()؛
لـ (int i = 0 ؛ ilt ؛ 10 ؛ i )
{
إذا (ObjectFind (إدارة التجارة EA: حد شراء الخط i) == - 1)
{
int j = i؛
استراحة؛
}
}
إذا (UseWingDings == الكاذبة)
{
ObjectCreate (إدارة التجارة EA: Line Buy Limit j، OBJ_HLINE، 0، TimeCurrent ()، Ask- (DistancePendingOrder * Point))؛
ObjectSet (إدارة التجارة EA: Line Buy Limit j ، OBJPROP_COLOR ، PendingColour) ؛
ObjectSet (إدارة التجارة EA: Line Buy Limit j ، OBJPROP_STYLE ، LineStyleEntry) ؛
double LineBuyLimitPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line Buy Limit j، OBJPROP_PRICE1)، Digits)؛
ObjectCreate (إدارة التجارة EA: تذكرة لا حدود الشراء ي ، OBJ_TEXT ، 0 ، الوقت [80] ، LineBuyLimit السعر)
ObjectSetText (إدارة التجارة EA: تذكرة لا حدود الشراء ي ، حد الشراء ، 10 ، Arial ، PendingColour)
}
آخر
{
ObjectCreate (إدارة التجارة EA: Line Buy Limit j، OBJ_TREND، 0، TimeCurrent ()، Ask- (DistancePendingOrder * Point)، Time [10]، Ask- (DistancePendingOrder * Point))؛
ObjectSet (إدارة التجارة EA: Line Buy Limit j ، OBJPROP_WIDTH ، OrderLineThickness) ؛
ObjectSet (إدارة التجارة EA: Line Buy Limit j ، OBJPROP_COLOR ، PendingColour) ؛
ObjectSet (إدارة التجارة EA: Line Buy Limit j ، OBJPROP_RAY ، False) ؛
LineBuyLimitPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line Buy Limit j، OBJPROP_PRICE1)، Digits)؛
//ObjectCreate (إدارة التجارة EA: حدود شراء Wingding j ، OBJ_TEXT ، 0 ، TimeCurrent () ، LineBuyLimitPrice) ؛
//ObjectSetText (إدارة التجارة EA: حدود شراء Wingding j ، CharToStr (Wingding) ، 10 ، WingDings ، PendingColour)
}
ضعف BuyLimitDistance = (Ask-LineBuyLimitPrice)(نقطة) ؛
string BuyLimitDistanceStr = DoubleToStr (BuyLimitDistance، 0)؛
ObjectCreate (إدارة التجارة EA: حد الشراء عن بعد j ، OBJ_TEXT ، 0 ، الوقت [10] ، LineBuyLimitPrice) ؛
ObjectSetText (إدارة التجارة EA: حد شراء المسافة ي ، BuyLimitDistanceStr ، 13 ، Arial ، PendingColour) ؛
عودة (0)؛
}
int SendBuyStopOrder ()
{
ثابت LastBuyStopTime كثافة العمليات ؛
إذا (TimeLocal () - LastBuyStopTimelt؛ = 2)
عودة (0)؛
LastBuyStopTime = TimeLocal ()؛
لـ (int i = 0 ؛ ilt ؛ 10 ؛ i )
{
إذا (ObjectFind (إدارة التجارة EA: وقف شراء الخط i) == - 1)
{
int j = i؛
استراحة؛
}
}
إذا (UseWingDings == الكاذبة)
{
ObjectCreate (إدارة التجارة EA: Line Buy Stop j ، OBJ_HLINE ، 0 ، TimeCurrent () ، Ask (DistancePendingOrder * Point))
ObjectSet (إدارة التجارة EA: Line Buy Stop j ، OBJPROP_COLOR ، PendingColour) ؛
ObjectSet (إدارة التجارة EA: Line Buy Stop j ، OBJPROP_STYLE ، LineStyleEntry) ؛
double LineBuyStopPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line Buy Stop j، OBJPROP_PRICE1)، Digits)؛
ObjectCreate (إدارة التجارة EA: تذكرة No Buy Stop j، OBJ_TEXT، 0، Time [80]، LineBuyStopPrice)؛
ObjectSetText (إدارة التجارة EA: تذكرة No Buy Stop j و Buy Stop و 10 و Arial و PendingColour)
}
آخر
{
ObjectCreate (إدارة التجارة EA: Line Buy Stop j، OBJ_TREND، 0، TimeCurrent ()، Ask (DistancePendingOrder * Point)، Time [10]، Ask (DistancePendingOrder * Point))؛
ObjectSet (إدارة التجارة EA: Line Buy Stop j ، OBJPROP_WIDTH ، OrderLineThickness) ؛
ObjectSet (إدارة التجارة EA: Line Buy Stop j ، OBJPROP_COLOR ، PendingColour) ؛
ObjectSet (إدارة التجارة EA: Line Buy Stop j ، OBJPROP_RAY ، False)
LineBuyStopPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line Buy Stop j ، OBJPROP_PRICE1) ، Digits)
//ObjectCreate (إدارة التجارة EA: إيقاف شراء Wingding j ، OBJ_TEXT ، 0 ، TimeCurrent () ، LineBuyStopPrice)
//ObjectSetText (إدارة التجارة EA: Wingding Buy Stop j ، CharToStr (Wingding) ، 10 ، WingDings ، PendingColour) ؛
}
ضعف BuyStopDistance = (LineBuyStopPrice-Ask)(نقطة) ؛
string BuyStopDistanceStr = DoubleToStr (BuyStopDistance، 0)؛
ObjectCreate (إدارة التجارة EA: بعد Buy Stop Stop j ، OBJ_TEXT ، 0 ، Time [10] ، LineBuyStopPrice) ؛
ObjectSetText (إدارة التجارة EA: مسافة شراء Stop j ، BuyStopDistanceStr ، 13 ، Arial ، PendingColour)
عودة (0)؛
}
int SendSellMarketOrder (bool HiddenPending)
{
إذا (SendMultipleOrders == 1)
{
ثابت ثابت LastSellMarketTime.
إذا (TimeLocal () - LastSellMarketTimelt؛ = 2)
عودة (0)؛
LastSellMarketTime = TimeLocal ()؛
}
إذا (SendMultipleOrdersgt؛ 1)
ShowConfirm = صحيح.
الكثير = CalculateLots ()؛
إذا (ShowConfirm == == TrueHiddenPending الكاذبة)
{
int MessageBoxResult = MessageBox (بيع الرمز () DoubleToStr (الكثير ، 2) الكثير في السوق؟
إذا (MessageBoxResult! = 6)
عودة (0)؛
}
RefreshRates ()؛
int TicketNumber = OrderSend (Symbol () ، OP_SELL ، Lots ، Bid ، 0،0،0)؛
إذا (TicketNumbergt، 0)
PlaySound (ok.wav)؛
آخر
{
PlaySound (timeout.wav)؛
string ErrorString = ErrorDescription (GetLastError ())؛
التعليق (فشل بيع السوق. السبب: ، ErrorString)
طباعة (فشل بيع السوق. السبب: ، ErrorString) ؛
}
عودة (0)؛
}
int SendSellLimitOrder ()
{
ثابت الباحث LastSellLimitTime.
إذا (TimeLocal () - LastSellLimitTimelt؛ = 2)
عودة (0)؛
LastSellLimitTime = TimeLocal ()؛
لـ (int i = 0 ؛ ilt ؛ 10 ؛ i )
{
إذا (ObjectFind (إدارة التجارة EA: حد بيع الخط i) == - 1)
{
int j = i؛
استراحة؛
}
}
إذا (UseWingDings == الكاذبة)
{
ObjectCreate (إدارة التجارة EA: حد بيع الخط j ، OBJ_HLINE ، 0 ، TimeCurrent () ، Bid (DistancePendingOrder * Point)) ؛
ObjectSet (إدارة التجارة EA: حد بيع الخط j ، OBJPROP_COLOR ، PendingColour) ؛
ObjectSet (إدارة التجارة EA: حد بيع الخط j ، OBJPROP_STYLE ، LineStyleEntry) ؛
double LineSellLimitPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: حد بيع الخط j ، OBJPROP_PRICE1) ، أرقام)
ObjectCreate (إدارة التجارة EA: تذكرة لا حدود البيع j ، OBJ_TEXT ، 0 ، الوقت [80] ، LineSellLimitPrice)
ObjectSetText (إدارة التجارة EA: تذكرة لا حدود البيع ي ، حد البيع ، 10 ، Arial ، PendingColour)
}
آخر
{
ObjectCreate (إدارة التجارة EA: حد بيع الخط j ، OBJ_TREND ، 0 ، TimeCurrent () ، Bid (DistancePendingOrder * Point) ، Time [10] ، Bid (DistancePendingOrder * Point))
ObjectSet (إدارة التجارة EA: حد بيع الخط j ، OBJPROP_WIDTH ، OrderLineThickness) ؛
ObjectSet (إدارة التجارة EA: حد بيع الخط j ، OBJPROP_COLOR ، PendingColour) ؛
ObjectSet (إدارة التجارة EA: Line Sell Limit j ، OBJPROP_RAY ، False) ؛
LineSellLimitPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: حد بيع الخط j ، OBJPROP_PRICE1) ، أرقام) ؛
//ObjectCreate (إدارة التجارة EA: حدود بيع الجناح j ، OBJ_TEXT ، 0 ، TimeCurrent () ، LineSellLimitPrice)
//ObjectSetText (إدارة التجارة EA: حدود بيع Wingding j ، CharToStr (Wingding) ، 10 ، WingDings ، PendingColour)
}
ضعف SellLimitDistance = (LineSellLimitPrice-Bid)(نقطة) ؛
string SellLimitDistanceStr = DoubleToStr (SellLimitDistance، 0)؛
ObjectCreate (إدارة التجارة EA: حد البيع عن بعد j ، OBJ_TEXT ، 0 ، الوقت [10] ، LineSellLimitPrice) ؛
ObjectSetText (إدارة التجارة EA: حد البيع عن بعد j ، SellLimitDistanceStr ، 13 ، Arial ، PendingColour) ؛
عودة (0)؛
}
int SendSellStopOrder ()
{
ثابت ثابت LastSellStopTime.
إذا (TimeLocal () - LastSellStopTimelt؛ = 2)
عودة (0)؛
LastSellStopTime = TimeLocal ()؛
لـ (int i = 0 ؛ ilt ؛ 10 ؛ i )
{
إذا (ObjectFind (إدارة التجارة EA: Line Sell Stop i) == - 1)
{
int j = i؛
استراحة؛
}
}
إذا (UseWingDings == الكاذبة)
{
ObjectCreate (إدارة التجارة EA: Line Sell Stop j ، OBJ_HLINE ، 0 ، TimeCurrent () ، Bid- (DistancePendingOrder * Point)) ؛
ObjectSet (إدارة التجارة EA: Line Sell Stop j ، OBJPROP_COLOR ، PendingColour) ؛
ObjectSet (إدارة التجارة EA: Line Sell Stop j ، OBJPROP_STYLE ، LineStyleEntry) ؛
double LineSellStopPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line Sell Stop j، OBJPROP_PRICE1)، Digits)؛
ObjectCreate (إدارة التجارة EA: تذكرة No Stop Stop j، OBJ_TEXT، 0، Time [80]، LineSellStopPrice)؛
ObjectSetText (إدارة التجارة EA: تذكرة لا إيقاف بيع ي ، إيقاف بيع ، 10 ، Arial ، PendingColour) ؛
}
آخر
{
ObjectCreate (إدارة التجارة EA: Line Sell Stop j، OBJ_TREND، 0، TimeCurrent ()، Bid- (DistancePendingOrder * Point)، Time [10]، Bid- (DistancePendingOrder * Point))؛
ObjectSet (إدارة التجارة EA: Line Sell Stop j ، OBJPROP_WIDTH ، OrderLineThickness) ؛
ObjectSet (إدارة التجارة EA: Line Sell Stop j ، OBJPROP_COLOR ، PendingColour) ؛
ObjectSet (إدارة التجارة EA: Line Sell Stop j ، OBJPROP_RAY ، False) ؛
LineSellStopPrice = NormalizeDouble (ObjectGet (إدارة التجارة EA: Line Sell Stop j، OBJPROP_PRICE1) ، والأرقام) ؛
//ObjectCreate (Trade Management EA: Wingding Sell Stop j، OBJ_TEXT، 0، TimeCurrent ()، LineSellStopPrice)؛
//ObjectSetText (إدارة التجارة EA: Wingding Sell Stop j ، CharToStr (Wingding) ، 10 ، WingDings ، PendingColour) ؛
}
ضعف SellStopDistance = (Bid-LineSellStopPrice)(نقطة) ؛
string SellStopDistanceStr = DoubleToStr (SellStopDistance، 0)؛
ObjectCreate (إدارة التجارة EA: Stop Sell Stop j ، OBJ_TEXT ، 0 ، Time [10] ، LineSellStopPrice)؛
ObjectSetText (إدارة التجارة EA: إيقاف بيع عن بعد j ، SellStopDistanceStr ، 13 ، Arial ، PendingColour) ؛
عودة (0)؛
}
int SendCloseOrder ()
{
ثابت ثابت LastCloseMarketTime.
إذا (TimeLocal () - LastCloseMarketTimelt؛ = 2)
عودة (0)؛
LastCloseMarketTime = TimeLocal ()؛
إذا (ShowConfirm == صحيح)
{
int MessageBoxResult = MessageBox (أغلق كل Symbol () الصفقات في السوق؟ ، 0x00000004 | 0x00000030) ؛
إذا (MessageBoxResult! = 6)
عودة (0)؛
}
RefreshRates ()؛
لـ (int i = OrdersTotal () - 1؛ igt؛ = 0؛ i--)
{
OrderSelect (ط، SELECT_BY_POS)؛
إذا (OrderSymbol () == رمز () OrderType () لتر، = 1)
{
إذا (OrderClose (OrderTicket ()، OrderLots ()، OrderClosePrice ()، و 100) == صحيح)
PlaySound (ok.wav)؛
آخر
{
PlaySound (timeout.wav)؛
string ErrorString = ErrorDescription (GetLastError ())؛
تعليق (فشل أمر الإغلاق. REASON: ، ErrorString) ؛
طباعة (فشل أمر الإغلاق. REASON: ، ErrorString) ؛
}
}
}
عودة (0)؛
}
int SetBE ()
{
لـ (int i = OrdersTotal () - 1؛ igt؛ = 0؛ i--)
{
OrderSelect (ط، SELECT_BY_POS)؛
إذا (OrderSymbol () == رمز () OrderType () لتر، = 1)
{
int TicketNo = OrderTicket () ؛
إذا (OrderProfit () GT، 0)
ObjectMove (إدارة التجارة EA: Line SL TicketNo ، 0 ، OrderOpenTime () ، OrderOpenPrice ())؛
}
}
}
حساب مزدوج ()
{
RefreshRates ()؛
ضعف LotPoint = MarketInfo (Symbol () ، MODE_LOTSTEP) ؛
إذا (الحصص == 0)
الكثير = (MathFloor (((AccountEquity () * RiskPercent * 0.01)((DefaultSL * MarketInfo (رمز ()، MODE_TICKVALUE)) CommissionPerLot))LotPoint)) * LotPoint.
العودة (الحصص)؛
}
فيما يلي الميزات التي تحدث مشكلات وتحتاج إلى بعض التغييرات:
1. لا تحسب EA المخاطرة بالطريقة الصحيحة (يرجى المحاولة بنفسك). ولذا يجب علي حساب المخاطرة في كل صفقة بنفسي والتي تكلفني كثيرًا من الوقت (أدير 20 مخططًا في نفس الوقت) .
2. عندما يذهب EA إلى Auto-BE بعد كمية محددة من النقاط ، أود أن يكون هناك إنذار عندما يحدث هذا.
3. عندما تتجه EA إلى Auto-BE بعد كمية محددة من النقاط ، أود أن أحصل على إمكانية العودة إلى TRAIL- وظيفة وبالتالي فإن Auto-BE لم يعد صالحًا لهذه التجارة. يجب أن يعود LOSS إلى وضع إيقاف التشغيل الأصلي قبل وضع AUTO-BE.
4. في هذا الوقت ، يمكنني فقط تعيين سطر إغلاق واحد في النسبة المئوية (دعنا نقول 50 ٪ من التجارة) ل 1 الموضع. ولكن أود أن يكون لدي إمكانية تعيين أكثر من 1 خط إغلاق الربح.
5. يجب أن تعمل EA في الإطار الزمني غير المتصل المطلوب = 8 ساعات
أرغب في مشاركة الشفرة معكم جميعًا الآن حتى يهتم بعض المبرمجين بإجراء التغييرات كما ينبغي أن يكونوا للعمل بشكل صحيح
أنا أقدر أي مساعدة هنا.
المرفق هو Trade-Manager-EA.
شكرا على انتباهك.
الجشع زاك
https://www.forexdrop.com/attachment...1161669919.mq4