#property copyright "PROSPEC_VZR_Ver1.4" #property link "http://www.365ea.com/" #include bool gi_76 = FALSE; bool gi_80; int gi_84 = 0; string gs_88 = "Yoshiyuki Mishima"; string gs_96 = "yoshiyuki mishima"; string gs_104 = "Mishima Yoshiyuki"; string gs_112 = "mishima yoshiyuki"; string gs_knock_on_120 = "Knock on"; string gs_128 = ""; string gs_136 = ""; int gi_144 = 0; extern int MagicNumber = 0; extern bool HedgeMode = FALSE; extern double MM = 5.0; extern double Lots = 0.1; extern int SL = 50; extern int TP = 45; extern double GMTOffset = 3.0; extern int StartTime = 21; extern int EndTime = 23; extern int CloseStartTime = 23; extern int CloseEndTime = 1; extern double CloseProfitPips = 15.0; extern bool ExtraClose = FALSE; extern int ExtraCloseTime = 5; extern int Slippage = 3; extern int MaxSpread = 3; extern bool UseBreakEven = TRUE; extern int BEStep = 12; extern int BEPoint = 2; extern bool UseTrailingStop = FALSE; extern int TStep = 15; extern bool OnceADay = FALSE; extern bool MondayMode = FALSE; extern bool FridayMode = FALSE; extern bool NewsMode = FALSE; extern bool StopHigh = FALSE; extern int StopHighStartTime = -6; extern int StopHighEndTime = 6; extern bool StopMedium = FALSE; extern int StopMediumStartTime = -4; extern int StopMediumEndTime = 4; extern bool StopLow = FALSE; extern int StopLowStartTime = -2; extern int StopLowEndTime = 2; extern bool SingleMode = FALSE; extern bool AggressiveMode = FALSE; extern bool CountdownMode = FALSE; extern bool YenMode = FALSE; extern int OP1 = 100; extern int OP2 = 20; extern int OP3 = 0; extern int OP4 = -5; extern int BB_Period = 10; extern bool TestMode = FALSE; extern double Buy = 30.0; extern double Sell = 70.0; extern int RSI_Period = 5; extern string EAComment = "PROSPEC_VZR_Ver1.4"; bool gi_368 = TRUE; double gd_372 = 0.0; double gd_380 = 0.0; double g_minlot_388 = 0.0; double g_maxlot_396 = 0.0; int g_lotsize_404 = 0; int g_leverage_408 = 0; int gi_412 = 0; int gi_416 = 0; int gi_420 = 0; int g_color_424 = LightSteelBlue; string gs_428 = ""; int gi_436 = 100; int gi_440 = 5000; int g_count_444 = 0; int g_count_448 = 0; bool gi_452 = FALSE; bool gi_456 = FALSE; void init() { string ls_unused_0; string ls_unused_8; bool li_16 = FALSE; if (IsTradeAllowed()) ls_unused_0 = "Enabled"; else ls_unused_0 = "Disabled"; if (IsDemo()) ls_unused_8 = "Demo account"; else ls_unused_8 = "Live account"; if (IsDemo()) gi_80 = TRUE; else gi_80 = FALSE; if (gi_84 == 0) { if (AccountName() == gs_88) li_16 = TRUE; if (AccountName() == gs_96) li_16 = TRUE; if (AccountName() == gs_104) li_16 = TRUE; if (AccountName() == gs_112) li_16 = TRUE; if (AccountName() == gs_knock_on_120) li_16 = TRUE; if (AccountName() == gs_128) li_16 = TRUE; if (AccountName() == gs_136 && AccountNumber() == gi_144) li_16 = TRUE; if (li_16 == TRUE) gi_76 = TRUE; } if (gi_84 == 0) if (gi_76 == FALSE) Alert("AccountError ", "Error:Account is not correct"); if (gi_84 == 2) if (IsDemo() != TRUE) Alert("AccountError ", "Error:Account is Live Account"); gs_428 = Symbol() + "-" + EAComment + ".log"; gi_368 = TRUE; g_minlot_388 = MarketInfo(Symbol(), MODE_MINLOT); g_maxlot_396 = MarketInfo(Symbol(), MODE_MAXLOT); g_leverage_408 = AccountLeverage(); g_lotsize_404 = MarketInfo(Symbol(), MODE_LOTSIZE); gi_412 = SetStoplevel(); MathSrand(TimeLocal()); if (MagicNumber == 0) { MagicNumber = MathMod(100.0 * (TimeCurrent() - 10000.0 * MathMod(OP1, 100) + 1000.0 * MathMod(OP2, 100) + 1000.0 * MathMod(OP3, 100) + 100.0 * MathMod(OP4, 100) + MathMod(BB_Period, 100) + 10.0 * MathMod(TP, 1000) + 10.0 * MathMod(SL, 1000)) + MathRand(), 10000) + 1.0; } Write("MagicNumber : " + MagicNumber); gi_420 = MathMod(MagicNumber, 60); gd_372 = SetPoint(); gd_380 = GetLots(); if (SingleMode && AggressiveMode) { Write("* Mode Error * Single Mode cannnot work together with Aggressive Mode. Please swith off either of them. "); Alert("* Mode Error * Single Mode cannnot work together with Aggressive Mode. Please swith off either of them. "); SingleMode = FALSE; AggressiveMode = FALSE; } if (StartTime == EndTime) { Write("* No Trade * If you want to trade 24hours, please set StartTime=0 and EndTime=24."); Alert("* No Trade * If you want to trade 24hours, please set StartTime=0 and EndTime=24."); } if (StartTime == 0 && EndTime == 24) { CloseStartTime = 911; CloseEndTime = 911; ExtraCloseTime = 911; } else { if (StartTime < 0 || EndTime < 0 || CloseStartTime < 0 || CloseEndTime < 0 || (ExtraClose && ExtraCloseTime < 0)) { StartTime = 911; EndTime = 911; CloseStartTime = 911; CloseEndTime = 911; ExtraCloseTime = 911; } else { Write("GMT --- StartTime : " + StartTime + " EndTime : " + EndTime + " CloseStartTime :" + CloseStartTime + " CloseEndTime :" + CloseEndTime + " ExtraCloseTime :" + ExtraCloseTime + ":" + gi_416 + ":" + gi_420); StartTime = StartTime + GMTOffset; EndTime = EndTime + GMTOffset; CloseStartTime = CloseStartTime + GMTOffset; CloseEndTime = CloseEndTime + GMTOffset; ExtraCloseTime = ExtraCloseTime + GMTOffset; if (StartTime < 0) StartTime += 24; StartTime = MathMod(StartTime, 24); if (EndTime < 0) EndTime += 24; EndTime = MathMod(EndTime, 24); if (CloseStartTime < 0) CloseStartTime += 24; CloseStartTime = MathMod(CloseStartTime, 24); if (CloseEndTime < 0) CloseEndTime += 24; CloseEndTime = MathMod(CloseEndTime, 24); if (ExtraClose && ExtraCloseTime < 0) ExtraCloseTime += 24; ExtraCloseTime = MathMod(ExtraCloseTime, 24); } } Write("BROKER --- StartTime : " + StartTime + " EndTime : " + EndTime + " CloseStartTime :" + CloseStartTime + " CloseEndTime :" + CloseEndTime + " ExtraCloseTime :" + ExtraCloseTime + ":" + gi_416 + ":" + gi_420); Write(" NewsMode : " + NewsMode); Write(" StopHigh : " + StopHigh + " StopHighStartTime :" + StopHighStartTime + " StopHighEndTime :" + StopHighEndTime); Write(" StopMedium : " + StopMedium + " StopMediumStartTime :" + StopMediumStartTime + " StopMediumEndTime :" + StopMediumEndTime); Write(" StopLow : " + StopLow + " StopLowStartTime :" + StopLowStartTime + " StopLowEndTime :" + StopLowEndTime); ObjectsDeleteAll(); ShowTime(); ShowFFcal(); ShowLots(); ObjectsRedraw(); } void deinit() { if (!IsTesting()) ObjectsDeleteAll(); } void start() { double l_ibands_16; double l_ibands_24; double ld_32; double l_irsi_40; int li_48; string ls_unused_52; int li_60; double l_price_64; double ld_72; double ld_80; int li_88; int l_datetime_0 = TimeCurrent(); int l_year_4 = TimeYear(l_datetime_0); int l_month_8 = TimeMonth(l_datetime_0); bool li_12 = FALSE; if (gi_84 == 0) { if (AccountName() == gs_88) li_12 = TRUE; if (AccountName() == gs_96) li_12 = TRUE; if (AccountName() == gs_104) li_12 = TRUE; if (AccountName() == gs_112) li_12 = TRUE; if (AccountName() == gs_knock_on_120) li_12 = TRUE; if (AccountName() == gs_128) li_12 = TRUE; if (AccountName() == gs_136 && AccountNumber() == gi_144) li_12 = TRUE; if (li_12 == TRUE) gi_76 = TRUE; } if (gi_84 == 0) if (gi_76 == FALSE) return; if (l_year_4 >= 2100) if (l_month_8 > 1) return; if (gi_84 == 2) if (gi_80 == FALSE) return; ShowTime(); ShowFFcal(); string ls_92 = EAComment + "\n " + "MagicNumber : " + MagicNumber; string ls_100 = "TRADE TIME : " + StartTime + " - " + EndTime + ""; string ls_108 = "CLOSE TIME : " + CloseStartTime + " - " + CloseEndTime + ""; string ls_116 = "Current Time : " + TimeHour(TimeCurrent()) + ":" + TimeMinute(TimeCurrent()); string ls_124 = "\n " + ls_92 + "\n " + "\n " + ls_100 + "\n " + ls_108 + "\n " + ls_116; Comment(ls_124); if (Bars >= BB_Period) { if (AccountBalance() > 0.0) { if (TP > 0 && TP < gi_412) TP = gi_412; if (SL > 0 && SL < gi_412) SL = gi_412; HideTestIndicators(TRUE); l_ibands_16 = iBands(NULL, PERIOD_M15, BB_Period, 2, 0, PRICE_CLOSE, MODE_LOWER, 1); l_ibands_24 = iBands(NULL, PERIOD_M15, BB_Period, 2, 0, PRICE_CLOSE, MODE_UPPER, 1); l_irsi_40 = iRSI(NULL, PERIOD_M15, RSI_Period, PRICE_CLOSE, 1); HideTestIndicators(FALSE); ld_32 = l_ibands_24 - l_ibands_16; for (int l_pos_132 = OrdersTotal() - 1; l_pos_132 >= 0; l_pos_132--) { if (!OrderSelect(l_pos_132, SELECT_BY_POS, MODE_TRADES)) Write("Error in OrderSelect! Position:" + l_pos_132); else { if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_BUY) { TrailingPositions(0); if ((IsExtraCloseTime() && Time[0] - OrderOpenTime() > 300) || (IsCloseTime() && Bid - OrderOpenPrice() > CloseProfitPips * gd_372) || Bid >= l_ibands_24 + OP4 * gd_372) OrdClose(OrderTicket(), OrderLots(), Bid, Slippage, Violet); } else { TrailingPositions(1); if ((IsExtraCloseTime() && Time[0] - OrderOpenTime() > 300) || (IsCloseTime() && OrderOpenPrice() - Ask > CloseProfitPips * gd_372) || Bid <= l_ibands_16 - OP4 * gd_372) OrdClose(OrderTicket(), OrderLots(), Ask, Slippage, Violet); } } } } if (MathAbs(iClose(NULL, PERIOD_D1, 1) - iOpen(NULL, PERIOD_D1, 0)) <= OP1 * gd_372) { li_48 = -1; if (!IsTradeTime()) gi_368 = TRUE; RefreshRates(); gd_380 = GetLots(); ShowLots(); ObjectsRedraw(); if (IsTradeTime() && !IsNewsStopTime() && IsTradeAvailable() && IsBuyOrderAvailable() && !gi_452 && (Bid < l_ibands_16 - OP3 * gd_372 && ld_32 >= OP2 * gd_372) && (TestMode && l_irsi_40 <= Buy) || !TestMode) { ls_unused_52 = "BUY"; li_48 = 0; li_60 = 16776960; l_price_64 = Ask; if (SL == 0) ld_72 = 0; else ld_72 = Bid - SL * gd_372; if (TP == 0) ld_80 = 0; else ld_80 = Ask + TP * gd_372; } if (IsTradeTime() && !IsNewsStopTime() && IsTradeAvailable() && IsSellOrderAvailable() && !gi_456 && (Bid > l_ibands_24 + OP3 * gd_372 && ld_32 >= OP2 * gd_372) && (TestMode && l_irsi_40 >= Sell) || !TestMode) { ls_unused_52 = "SELL"; li_48 = 1; li_60 = 255; l_price_64 = Bid; if (SL == 0) ld_72 = 0; else ld_72 = Ask + SL * gd_372; if (TP == 0) ld_80 = 0; else ld_80 = Bid - TP * gd_372; } if (li_48 >= 0) { if (CountdownMode) { li_88 = OrdSend(Symbol(), li_48, gd_380, l_price_64, Slippage, 0, 0, EAComment, MagicNumber, 0, li_60); OrdModify(li_88, OrderOpenPrice(), ld_72, ld_80, 0, li_60); gi_456 = TRUE; gi_452 = FALSE; gi_452 = TRUE; gi_456 = FALSE; } else OrdSend(Symbol(), li_48, gd_380, l_price_64, Slippage, ld_72, ld_80, EAComment, MagicNumber, 0, li_60); } } } } } bool IsTradeTime() { if ((DayOfWeek() >= 2 && DayOfWeek() <= 4) || (!MondayMode && DayOfWeek() == 0) || (!MondayMode && DayOfWeek() == 1) || (!FridayMode && DayOfWeek() == 5) || (!FridayMode && DayOfWeek() == 6)) { if (StartTime <= EndTime && Hour() >= StartTime && Hour() < EndTime) return (TRUE); if (StartTime > EndTime && Hour() >= StartTime || Hour() < EndTime) return (TRUE); } if (MondayMode && DayOfWeek() == 1) { if (StartTime <= EndTime && (Hour() >= StartTime && Hour() < EndTime) && Hour() >= 12) return (TRUE); if (StartTime > EndTime && Hour() >= StartTime || Hour() < EndTime && Hour() >= 12) return (TRUE); } if (FridayMode && DayOfWeek() == 5) { if (StartTime <= EndTime && (Hour() >= StartTime && Hour() < EndTime) && Hour() < 12) return (TRUE); if (StartTime > EndTime && Hour() >= StartTime || Hour() < EndTime && Hour() < 12) return (TRUE); } return (FALSE); } bool IsCloseTime() { if (CloseStartTime <= CloseEndTime && Hour() >= CloseStartTime && Hour() < CloseEndTime) return (TRUE); if (CloseStartTime > CloseEndTime && Hour() >= CloseStartTime || Hour() < CloseEndTime) return (TRUE); return (FALSE); } int IsExtraCloseTime() { if (ExtraClose && Hour() == ExtraCloseTime && Minute() == gi_416 && Seconds() >= gi_420) return (1); if (ExtraClose && Hour() == ExtraCloseTime && Minute() > gi_416 && Minute() <= gi_416 + 3) return (1); return (0); } int IsTradeAvailable() { if (Ask - Bid > MaxSpread * gd_372) return (0); if (OnceADay && !gi_368) return (0); return (1); } void CountOrders() { g_count_444 = 0; g_count_448 = 0; for (int l_pos_0 = OrdersTotal() - 1; l_pos_0 >= 0; l_pos_0--) { if (!OrderSelect(l_pos_0, SELECT_BY_POS, MODE_TRADES)) Write("Error in OrderSelect! Position:" + l_pos_0); else { if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_BUY) g_count_444++; else if (OrderType() == OP_SELL) g_count_448++; } } } } int IsBuyOrderAvailable() { CountOrders(); if (SingleMode && g_count_444 + g_count_448 < 1) return (1); if (!SingleMode && !AggressiveMode && g_count_444 < 1) return (1); if (!SingleMode && AggressiveMode && g_count_444 < 2) return (1); return (0); } int IsSellOrderAvailable() { CountOrders(); if (SingleMode && g_count_444 + g_count_448 < 1) return (1); if (!SingleMode && !AggressiveMode && g_count_448 < 1) return (1); if (!SingleMode && AggressiveMode && g_count_448 < 2) return (1); return (0); } double ND(double ad_0) { double ld_8 = NormalizeDouble(ad_0, Digits); return (ld_8); } int SetStoplevel() { int li_ret_0; if (Digits == 2 || Digits == 4) li_ret_0 = MarketInfo(Symbol(), MODE_STOPLEVEL); else li_ret_0 = MarketInfo(Symbol(), MODE_STOPLEVEL) / 10.0; return (li_ret_0); } double SetPoint() { double ld_ret_0; if (Digits < 4) ld_ret_0 = 0.01; else ld_ret_0 = 0.0001; return (ld_ret_0); } int LotsDigit() { int li_ret_8; double ld_0 = NormalizeDouble(MarketInfo(Symbol(), MODE_LOTSTEP), 2); if (ld_0 == 0.01) li_ret_8 = 2; else { if (ld_0 == 0.1) li_ret_8 = 1; else li_ret_8 = 0; } return (li_ret_8); } double GetLots() { double ld_ret_0 = Lots; if (MM > 0.0) { if (YenMode) { if (HedgeMode) ld_ret_0 = NormalizeDouble(MM * AccountBalance() / 100.0 / g_lotsize_404 / g_minlot_388, 0) * g_minlot_388; else ld_ret_0 = NormalizeDouble(MM * AccountFreeMargin() / 100.0 / g_lotsize_404 / g_minlot_388, 0) * g_minlot_388; } else { if (HedgeMode) ld_ret_0 = NormalizeDouble(MM * AccountBalance() / g_lotsize_404 / g_minlot_388, 0) * g_minlot_388; else ld_ret_0 = NormalizeDouble(MM * AccountFreeMargin() / g_lotsize_404 / g_minlot_388, 0) * g_minlot_388; } } else if (ld_ret_0 == 0.0) return (ld_ret_0); ld_ret_0 = MathMax(g_minlot_388, MathMin(g_maxlot_396, NormalizeDouble(ld_ret_0 / g_minlot_388, 0) * g_minlot_388)); return (ld_ret_0); } int OrdSend(string a_symbol_0, int ai_8, double a_lots_12, double ad_20, int a_slippage_28, double ad_32, double ad_40, string a_comment_48 = "", int a_magic_56 = 0, int a_datetime_60 = 0, color a_color_64 = -1) { int l_ticket_68; int l_ticket_72; int l_count_76 = 0; switch (ai_8) { case 0: if (!IsTradeContextBusy() && IsTradeAllowed()) { while (l_count_76 < gi_436) { RefreshRates(); l_ticket_68 = OrderSend(a_symbol_0, OP_BUY, a_lots_12, ND(ad_20), a_slippage_28, ND(ad_32), ND(ad_40), a_comment_48, a_magic_56, a_datetime_60, a_color_64); if (l_ticket_68 < 0) { Write("Error : " + GetLastError() + " " + ErrorDescription(GetLastError())); Write(Symbol() + " Buy @ " + ad_20 + " SL @ " + ad_32 + " TP @" + ad_40 + " ticket =" + l_ticket_68); l_count_76++; } else { l_count_76 = gi_436; Write("Order opened : " + Symbol() + " Buy @ " + ad_20 + " SL @ " + ad_32 + " TP @" + ad_40 + " ticket =" + l_ticket_68); } Sleep(gi_440); } } l_ticket_72 = l_ticket_68; break; case 1: if (!IsTradeContextBusy() && IsTradeAllowed()) { while (l_count_76 < gi_436) { RefreshRates(); l_ticket_68 = OrderSend(a_symbol_0, OP_SELL, a_lots_12, ND(ad_20), a_slippage_28, ND(ad_32), ND(ad_40), a_comment_48, a_magic_56, a_datetime_60, a_color_64); if (l_ticket_68 < 0) { Write("Error : " + GetLastError() + " " + ErrorDescription(GetLastError())); Write(Symbol() + " Sell @ " + ad_20 + " SL @ " + ad_32 + " TP @" + ad_40 + " ticket =" + l_ticket_68); l_count_76++; } else { l_count_76 = gi_436; Write("Order opened : " + Symbol() + " Sell @ " + ad_20 + " SL @ " + ad_32 + " TP @" + ad_40 + " ticket =" + l_ticket_68); } Sleep(gi_440); } } l_ticket_72 = l_ticket_68; break; default: Write("No valid type of order found"); l_ticket_72 = -1; } return (l_ticket_72); } void OrdClose(int a_ticket_0, double a_lots_4, double ad_12, int a_slippage_20, color a_color_24 = -1) { int l_ord_close_28; int l_count_36 = 0; if (!IsTradeContextBusy() && IsTradeAllowed()) { while (l_count_36 < gi_436) { RefreshRates(); l_ord_close_28 = OrderClose(a_ticket_0, a_lots_4, ND(ad_12), a_slippage_20, a_color_24); if (l_ord_close_28 == 0 && GetLastError() > 1/* NO_RESULT */) { Write("Error : " + GetLastError() + " " + ErrorDescription(GetLastError())); Write(Symbol() + " Close @ " + ad_12 + " ticket =" + a_ticket_0); l_count_36++; } else { l_count_36 = gi_436; Write("Order closed : " + Symbol() + " Close @ " + ad_12 + " ticket =" + a_ticket_0); } Sleep(gi_440); } } int l_error_32 = GetLastError(); } void OrdModify(int a_ticket_0, double ad_4, double ad_12, double ad_20, int a_datetime_28, color a_color_32 = -1) { bool l_bool_36; int l_count_44 = 0; if (!IsTradeContextBusy() && IsTradeAllowed()) { while (l_count_44 < gi_436) { RefreshRates(); l_bool_36 = OrderModify(a_ticket_0, ND(ad_4), ND(ad_12), ND(ad_20), a_datetime_28, a_color_32); if (l_bool_36 == FALSE && GetLastError() > 1/* NO_RESULT */) { Write("Error : " + ErrorDescription(GetLastError())); l_count_44++; } else { l_count_44 = gi_436; Write("Order modified : " + Symbol() + " Ask @ " + Ask + " Bid @ " + Bid + " Modify @ " + ad_4 + " SL @ " + ad_12 + " TP @" + ad_20 + " ticket =" + a_ticket_0); } Sleep(gi_440); } } int l_error_40 = GetLastError(); } void TrailingPositions(int ai_0) { if (BEStep > 0 && BEStep < gi_412) BEStep = gi_412; if (BEStep - BEPoint < gi_412) BEPoint = BEStep - gi_412; if (TStep > 0 && TStep < gi_412) TStep = gi_412; if (ai_0 == 0) { if (UseBreakEven && BEStep > 0) { if (Bid - OrderOpenPrice() > BEStep * gd_372) if (OrderStopLoss() < OrderOpenPrice() + BEPoint * gd_372) OrdModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + BEPoint * gd_372, OrderTakeProfit(), 0, Orange); } if (UseTrailingStop && TStep > 0) { if (Bid - OrderOpenPrice() > MathMax(TStep * gd_372, BEStep * gd_372)) if (OrderStopLoss() < Bid - TStep * gd_372) OrdModify(OrderTicket(), OrderOpenPrice(), Bid - TStep * gd_372, OrderTakeProfit(), 0, Orange); } } if (ai_0 == 1) { if (UseBreakEven && BEStep > 0) { if (OrderOpenPrice() - Ask > BEStep * gd_372) if (OrderStopLoss() > OrderOpenPrice() - BEPoint * gd_372 || OrderStopLoss() == 0.0) OrdModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - BEPoint * gd_372, OrderTakeProfit(), 0, DeepSkyBlue); } if (UseTrailingStop && TStep > 0) { if (OrderOpenPrice() - Ask > MathMax(TStep * gd_372, BEStep * gd_372)) if (OrderStopLoss() > Ask + TStep * gd_372 || OrderStopLoss() == 0.0) OrdModify(OrderTicket(), OrderOpenPrice(), Ask + TStep * gd_372, OrderTakeProfit(), 0, DeepSkyBlue); } } if (UseTrailingStop && TStep == 0 && UseBreakEven && BEPoint == 0) return; } int CustomText(string a_name_0, int a_x_8, int a_y_12, int a_corner_16) { ObjectCreate(a_name_0, OBJ_LABEL, 0, 0, 0); ObjectSet(a_name_0, OBJPROP_CORNER, a_corner_16); ObjectSet(a_name_0, OBJPROP_XDISTANCE, a_x_8); ObjectSet(a_name_0, OBJPROP_YDISTANCE, a_y_12); ObjectSet(a_name_0, OBJPROP_BACK, TRUE); return (0); } void ShowLots() { string l_text_0 = DoubleToStr(gd_380, LotsDigit()) + " Lot"; CustomText("Lots1", 67, 75, 1); ObjectSetText("Lots1", "Next :", 8, "Arial", g_color_424); CustomText("Lots2", 60, 90, 1); ObjectSetText("Lots2", l_text_0, 10, "Arial", g_color_424); } void ShowTime() { color l_color_0; color l_color_4; color l_color_8; if (IsTradeTime() && !IsNewsStopTime()) l_color_0 = Lime; else { if (IsTradeTime() && IsNewsStopTime()) l_color_0 = Yellow; else l_color_0 = Red; } if (IsCloseTime()) l_color_4 = Lime; else l_color_4 = Red; if (HedgeMode) l_color_8 = Lime; else l_color_8 = Red; CustomText("Time1", 20, 30, 1); ObjectSetText("Time1", "Trading Closing", 8, "Arial", g_color_424); CustomText("Time2", 26, 42, 1); ObjectSetText("Time2", "Time Time", 8, "Arial", g_color_424); CustomText("Hedge", 21, 75, 1); ObjectSetText("Hedge", "Hedge", 8, "Arial", g_color_424); CustomText("Mode", 23, 87, 1); ObjectSetText("Mode", "Mode", 8, "Arial", g_color_424); CustomText("Lump1", 70, 22, 1); ObjectSetText("Lump1", "-", 45, "Arial", l_color_0); CustomText("Lump2", 28, 22, 1); ObjectSetText("Lump2", "-", 45, "Arial", l_color_4); CustomText("Lump3", 28, 65, 1); ObjectSetText("Lump3", "-", 45, "Arial", l_color_8); } void ShowFFcal() { int li_unused_0; int li_unused_4; int li_unused_8; int l_icustom_12; int li_16; int li_20; int l_icustom_24; string l_text_28; string l_text_36; string ls_44; string ls_52; if (NewsMode) { HideTestIndicators(TRUE); if (StopHigh) li_unused_0 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 1, 0, 0, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 1, 9, 12632256, 255, 21, 900, 900, 0, 1, 0, 0, 2, 0); else li_unused_0 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 1, 0, 0, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 1, 9, 8421504, 128, 21, 900, 900, 0, 1, 0, 0, 2, 0); if (StopMedium) li_unused_4 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 0, 1, 0, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 1, 9, 12632256, 65535, 21, 900, 900, 0, 1, 0, 0, 2, 0); else li_unused_4 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 0, 1, 0, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 1, 9, 8421504, 32896, 21, 900, 900, 0, 1, 0, 0, 2, 0); if (StopLow) li_unused_8 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 0, 0, 1, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 1, 9, 12632256, 16711680, 21, 900, 900, 0, 1, 0, 0, 2, 0); else li_unused_8 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 0, 0, 1, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 1, 9, 8421504, 7346457, 21, 900, 900, 0, 1, 0, 0, 2, 0); l_icustom_12 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 1, 1, 1, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 0, 9, 12632256, 16748574, 21, 900, 900, 0, 1, 0, 0, 1, 1); l_icustom_24 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 1, 1, 1, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 0, 9, 12632256, 16748574, 21, 900, 900, 1, 1, 0, 0, 2, 1); HideTestIndicators(FALSE); if (l_icustom_12 >= 0) { if (l_icustom_12 >= 1440) { l_icustom_12 = -1; l_text_28 = "No Upcoming news for next 24 hours"; CustomText("FFcal", 15, 5, 3); ObjectSetText("FFcal", l_text_28, 10, "Arial", LightSteelBlue); } else { if (l_icustom_12 < 60) { li_16 = 0; li_20 = l_icustom_12 + 1; } else { li_16 = MathFloor(l_icustom_12 / 60); li_20 = MathAbs(60.0 * MathFloor(l_icustom_12 / 60) - l_icustom_12) + 1.0; } if (li_20 == 60) li_20 = 59; if (li_16 >= 0 && li_16 <= 9) ls_44 = "0"; else ls_44 = ""; if (li_20 >= 0 && li_20 <= 9) ls_52 = "0"; else ls_52 = ""; l_text_36 = ls_44 + DoubleToStr(li_16, 0) + " hrs " + ls_52 + DoubleToStr(li_20, 0) + " min"; if (l_icustom_24 == 3) { l_text_28 = "NEXT NEWS IMPACT HIGH "; CustomText("FFcal", 15, 25, 3); CustomText("FFcal_time", 90, 5, 3); if (StopHigh) { ObjectSetText("FFcal", l_text_28, 9, "Arial", Red); ObjectSetText("FFcal_time", l_text_36, 10, "Arial", Red); } else { ObjectSetText("FFcal", l_text_28, 9, "Arial", Maroon); ObjectSetText("FFcal_time", l_text_36, 10, "Arial", Maroon); } } else { if (l_icustom_24 == 2) { l_text_28 = "NEXT NEWS IMPACT MEDIUM "; CustomText("FFcal", 15, 25, 3); CustomText("FFcal_time", 105, 5, 3); if (StopMedium) { ObjectSetText("FFcal", l_text_28, 9, "Arial", Yellow); ObjectSetText("FFcal_time", l_text_36, 10, "Arial", Yellow); } else { ObjectSetText("FFcal", l_text_28, 9, "Arial", Olive); ObjectSetText("FFcal_time", l_text_36, 10, "Arial", Olive); } } else { if (l_icustom_24 == 1) { l_text_28 = "NEXT NEWS IMPACT LOW "; CustomText("FFcal", 15, 25, 3); CustomText("FFcal_time", 85, 5, 3); if (StopLow) { ObjectSetText("FFcal", l_text_28, 9, "Arial", Blue); ObjectSetText("FFcal_time", l_text_36, 10, "Arial", Blue); } else { ObjectSetText("FFcal", l_text_28, 9, "Arial", MidnightBlue); ObjectSetText("FFcal_time", l_text_36, 10, "Arial", MidnightBlue); } } } } } } } } bool IsNewsStopTime() { int li_0; int li_4; int li_8; int li_12; int li_16; int li_20; int l_icustom_24; int l_icustom_28; int l_icustom_32; int l_icustom_36; int l_icustom_40; int l_icustom_44; if (NewsMode) { li_0 = -1 * (60 * StopHighStartTime); li_4 = 60 * StopHighEndTime; li_8 = -1 * (60 * StopMediumStartTime); li_12 = 60 * StopMediumEndTime; li_16 = -1 * (60 * StopLowStartTime); li_20 = 60 * StopLowEndTime; HideTestIndicators(TRUE); l_icustom_24 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 1, 0, 0, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 0, 9, 12632256, 255, 21, 900, 900, 0, 1, 0, 0, 1, 1); l_icustom_28 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 0, 1, 0, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 0, 9, 12632256, 65535, 21, 900, 900, 0, 1, 0, 0, 1, 1); l_icustom_32 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 0, 0, 1, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 0, 9, 12632256, 16711680, 21, 900, 900, 0, 1, 0, 0, 1, 1); l_icustom_36 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 1, 0, 0, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 0, 9, 12632256, 255, 21, 900, 900, 0, 1, 0, 0, 1, 0); l_icustom_40 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 0, 1, 0, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 0, 9, 12632256, 65535, 21, 900, 900, 0, 1, 0, 0, 1, 0); l_icustom_44 = iCustom(NULL, 0, "FFCal_VZR", GMTOffset, 0, 0, 0, 1, 1, 1, 1, -1, -1, 2, 9, 13882323, 3329330, 255, 42495, 65535, 0, 9, 12632256, 16711680, 21, 900, 900, 0, 1, 0, 0, 1, 0); HideTestIndicators(FALSE); if (StopHigh && li_0 >= l_icustom_24 || li_4 >= l_icustom_36) return (TRUE); if (StopMedium && li_8 >= l_icustom_28 || li_12 >= l_icustom_40) return (TRUE); if (StopLow && li_16 >= l_icustom_32 || li_20 >= l_icustom_44) return (TRUE); return (FALSE); } return (FALSE); } int Write(string as_unused_0) { return (0); }