#property copyright "Copyright 2023, M & Q Investment Group" #property link "https://www.mql5.com" #property version "1.00" #include CTrade trade; //-------------------------------------------BASIC VERSION BEFORE TESTING------------- input double TrigPDif = 0.00005; //input double SLDif = 0.001; //input double TPDif = 0.001; input double LotS = 1.0; input int ExpiryTime = 120; input int TickTolerance = 5; input double TickToleranceTolerance = 0.7; input double PufferDistance = 0.0001; input string Opentime = "07:30:00"; input string CloseTime = "23:00"; double TickStreakCountDown = 0; double TickStreakCountUp = 0; //bool OrderinAction; //double bid1 = 0; double bid0 = 0; double accountbalancebeginning; double accountprofit; int OnInit(){ accountbalancebeginning = AccountInfoDouble(ACCOUNT_BALANCE); //OrderinAction = false; return(INIT_SUCCEEDED); } void OnTick(){ //DETERMINING TIMEFRAME datetime opentimenow = StringToTime(Opentime); datetime closetimenow = StringToTime(CloseTime); datetime currenttime = TimeCurrent(); if(currenttime > opentimenow && currenttime < closetimenow){ //GET PINK AMA VALUES double PinkAMAPriceArray[]; int PinkAMADefinition = iAMA (_Symbol,_Period,1,1,20,0,PRICE_CLOSE); ArraySetAsSeries(PinkAMAPriceArray,true); //AMA DEF, one line, current candle, 3 candles, store result CopyBuffer(PinkAMADefinition,0,0,TickTolerance*2,PinkAMAPriceArray); double PinkAMACurrentValue = NormalizeDouble(PinkAMAPriceArray[0],6); //GET YELLWOW AMA VALUES double YellAMAPriceArray[]; int YellAMADefinition = iAMA (_Symbol,_Period,2,5,1,0,PRICE_CLOSE); ArraySetAsSeries(YellAMAPriceArray,true); //AMA DEF, one line, current candle, 3 candles, store result CopyBuffer(YellAMADefinition,0,0,TickTolerance*2,YellAMAPriceArray); double YellAMACurrentValue = NormalizeDouble(YellAMAPriceArray[0],6); //GET RED AMA VALUES double RedAMAPriceArray[]; int RedAMADefinition = iAMA (_Symbol,_Period,5,2,30,0,PRICE_CLOSE); ArraySetAsSeries(RedAMAPriceArray,true); //AMA DEF, one line, current candle, 3 candles, store result CopyBuffer(RedAMADefinition,0,0,TickTolerance*2,RedAMAPriceArray); double RedAMACurrentValue = NormalizeDouble(RedAMAPriceArray[0],6); //FIND THE TRIGGER bool GehRinDoJetztDown = false; bool GehRinDoJetztUp = false; double CheckTicks = TickTolerance * TickToleranceTolerance; //OBENDRÜBER for(int i = (TickTolerance*2) - 1; i > TickTolerance - 1; i--){ if(PinkAMAPriceArray[i] > YellAMAPriceArray[i]){ TickStreakCountUp = TickStreakCountUp + 1; } } if(TickStreakCountUp > CheckTicks){ GehRinDoJetztUp = true; TickStreakCountUp = 0; } //UNTENDRUNTER for(int i = 0; i < TickTolerance; i++){ if(PinkAMAPriceArray[i] < YellAMAPriceArray[i]){ TickStreakCountDown = TickStreakCountDown + 1; } } if(TickStreakCountDown > CheckTicks){ GehRinDoJetztDown = true; TickStreakCountDown = 0; } //SET THE ORDER //bid1 = bid0; bid0 = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits); double PufferPrice = RedAMACurrentValue + PufferDistance; if(GehRinDoJetztDown == true && GehRinDoJetztUp == true && YellAMACurrentValue > PufferPrice && PositionsTotal() == 0 && OrdersTotal() == 0){ double TrigP = bid0 - TrigPDif; double TP = RedAMACurrentValue; double SL = bid0 + (YellAMACurrentValue - RedAMACurrentValue); datetime OrderExpTime = TimeCurrent() + ExpiryTime; trade.SellStop(LotS,TrigP,_Symbol,SL,TP,ORDER_TIME_SPECIFIED,OrderExpTime); Print("Bidprice: ", bid0, "\n Current Pink: ", PinkAMACurrentValue, "\n Current Yellow: ", YellAMACurrentValue, "\n Current Red: ", RedAMACurrentValue); } /*/DELETE ORDER if(bid0 >= AMAPriceArray[0] - TrigPDif && OrderinAction == true){ ulong Positionticket = PositionGetTicket(0); trade.OrderDelete(Positionticket); }*/ // DISPLAY OF VALUES ON CHART double accountbalance = AccountInfoDouble(ACCOUNT_BALANCE); double accountequity = AccountInfoDouble(ACCOUNT_EQUITY); accountprofit = accountequity - accountbalancebeginning; accountprofit = NormalizeDouble(accountprofit,2); Comment("\nServertime: ", TimeCurrent(), "\nCurrenttime: ",TimeCurrent(), "\nProfit: ",accountprofit, "\nEquity: ",accountequity, "\nPinkAMA-Value ",PinkAMACurrentValue, "\nYellAMA-Value ",YellAMACurrentValue, "\nRedAMA-Value ",RedAMACurrentValue); }//END TIMEFRAME }//END ONTICK