|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
OrderClose Problem + Wochentag Filter
Liebe Forum Mitglieder,
ich bin dabei MQL4 zu lernen und schreibe gerade meinen ersten Expert Advisor. Nachdem ich keinen Programmier Background habe und mich mit Youtube, Google, MQL4 docs etc. ein wenig eingearbeitet habe, stehe ich nun vor folgendem Problem und bitte euch um Hilfe. Trade Setup: -------------- Eröffne Freitags eine Buy Order bei Market Open, wenn der Open der D1 Candle des Vortage und der Open des heutigen Tages über dem EMA (x) liegt und schließe die Order am Montag beim Open der D1 Candle. Da ich diesen Expert Advisor verschieden einstellen möchte habe ich entsprechend einige inputs für die wichtigsten Werte definiert. Fehler: ------- Die Order wird laut Journal im Strategy Tester ohne Rücksicht auf den Weekday Filter sofort ausgeführt und wieder geschlossen. Im Journal steht: - unknown ticket #1 for order close function - Order Close Error 4108 Bitte: ------ Ich wäre dankbar für jeden Input. Der Code: ----------- #property strict int MagicNumber = 10000; // Global external variables //-------------------------- input int TradeOpenWeekday = 5; //TradeOpenDay of the week input int TradeCloseWeekday = 1; // TradeCloseDay of the week input int EMAperiod = 10; //EMA period input double SL_ATR_Multi = 1.00; //SL_ATR_Multiplikator input double TP_ATR_Multi = 3.00; //TP_ATR_Multiplikator input double LotSize = 0.01; //Lotsize Traded input int MaxSlippage = 10; //Maximum Slippage //Global ínternal variables //------------------------- double BarOpen = iOpen(NULL,PERIOD_D1,0); double BarClosePreviousCandle = iClose(NULL,PERIOD_D1,1); double StopLossCalculation = NormalizeDouble((iATR(NULL,0,10,1)*SL_ATR_Multi),D igits); double StopLossDistanceFromOpen = (BarOpen - StopLossCalculation); double TakeProfitCalculation = NormalizeDouble((iATR(NULL,0,10,1)*TP_ATR_Multi),D igits); double TakeProfitDistanceFromOpen = (BarOpen + TakeProfitCalculation); // LONG - Trade Control Parameters + Ticket Numbers // ----------------------------------------- bool LongTrade = false; int BuyTicketNumber = OrderSend (Symbol(),OP_BUY,LotSize,Ask,MaxSlippage,StopLossD istanceFromOpen,TakeProfitDistanceFromOpen,"+++ GOLD_FR_EMA0_MO +++",MagicNumber,0,clrGreen); bool BuyOrderSelected = OrderSelect(BuyTicketNumber,SELECT_BY_TICKET); bool CloseLongTrade = OrderClose (BuyTicketNumber,LotSize,Bid,MaxSlippage,clrBlue); // Trade Entry Indicators // ----------------------- double EMA = NormalizeDouble ((iMA(NULL,0,EMAperiod,0,MODE_EMA,PRICE_CLOSE,1)), Digits); //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--------------------- //Check for Trade Setup //--------------------- if ((BarClosePreviousCandle > EMA) && (BarOpen > EMA) && (DayOfWeek() == TradeOpenWeekday)) { LongTrade = true; } else LongTrade = false; //---------------- // Place Buy Order //---------------- if (LongTrade == true) { BuyTicketNumber = OrderSend (_Symbol,OP_BUY,LotSize,Ask,MaxSlippage,StopLossDi stanceFromOpen,TakeProfitDistanceFromOpen,"+++ GOLD_FR_EMA0_MO +++",MagicNumber,0,clrGreen); } //----------------- // Select Buy Order //----------------- if ((BuyTicketNumber >0) && (DayOfWeek() == TradeCloseWeekday)) { BuyOrderSelected = true; } else BuyOrderSelected = false; //---------------- // Close Buy Order //---------------- if (BuyOrderSelected == true) { CloseLongTrade = true; } if (CloseLongTrade == true) { CloseLongTrade = OrderClose (BuyTicketNumber,LotSize,Bid,MaxSlippage,clrBlue); } } //+------------------------------------------------------------------+ |
Lesezeichen |
|
|