#include CTrade trade; #property copyright "Copyright 2023, M & Q Investment Group" #property link "https://www.mql5.com" #property version "1.00" input double TPBuy = 0.00001; input double SLBuy = 0.00001; input double TPSell = 0.00001; input double SLSell = 0.00001; input double TPAll = 0.0001; input double SLAll = 0.0001; input double TPSLDiff = 0.00001; input double DifferenceToOpenBuy = 0.00001; input double DifferenceToOpenSell = 0.00001; input double DifferenceToOpenAll = 0.00001; input double LotSize = 100; input double MinimumCandleSize = 0.001; void OnTick() { datetime GCurrenttime = TimeCurrent(); int CandleNumber = Bars(_Symbol,_Period); bool NewCandleAppeared; NewCandleAppeared = CheckfornewCandle(CandleNumber,GCurrenttime); if (NewCandleAppeared && PositionsTotal() < 1) { double OpeningPriceLastCandle = iOpen(_Symbol,_Period,1); double ClosingPriceLastCandle = iClose(_Symbol,_Period,1); datetime Expirytime = TimeCurrent() + 120; //GREEN TO RED CANDLE SELLSTOP if ( MinimumCandleSize * -1 > OpeningPriceLastCandle - ClosingPriceLastCandle) { double TriggerpriceBuy = NormalizeDouble(OpeningPriceLastCandle - DifferenceToOpenAll,_Digits); double TPBuyOrder = NormalizeDouble(TriggerpriceBuy + TPAll,_Digits); double SLBuyOrder = NormalizeDouble(TriggerpriceBuy - SLAll,_Digits); trade.BuyLimit(LotSize, TriggerpriceBuy, _Symbol, SLBuyOrder, TPBuyOrder, ORDER_TIME_SPECIFIED, Expirytime); } //RED TO GREEN CANDLE BUYSTOP if ( MinimumCandleSize < OpeningPriceLastCandle - ClosingPriceLastCandle) { double TriggerpriceSell = NormalizeDouble(OpeningPriceLastCandle + DifferenceToOpenAll,_Digits); double TPSellOrder = NormalizeDouble(TriggerpriceSell - TPAll,_Digits); double SLSellOrder = NormalizeDouble(TriggerpriceSell + SLAll,_Digits); trade.SellLimit(LotSize, TriggerpriceSell, _Symbol, SLSellOrder, TPSellOrder, ORDER_TIME_SPECIFIED, Expirytime); } } // DISPLAY OF DATA DURING TRADE double accountbalance = AccountInfoDouble(ACCOUNT_BALANCE); double accountprofit = AccountInfoDouble(ACCOUNT_PROFIT); double accountequity = AccountInfoDouble(ACCOUNT_EQUITY); Comment("\nServertime: ", TimeCurrent(), "\nCurrenttime: ",TimeLocal(), "\nProfit: ", accountprofit, "\nEquity: ", accountequity, "\nBalance: ", accountbalance); }