From 2fcda979d5c698d921c4e182f9ffa295dc361939 Mon Sep 17 00:00:00 2001 From: Nkondog Anselme Date: Tue, 15 Mar 2022 23:11:18 +0100 Subject: [PATCH] Working on DCA Manager --- Experts/Nkanven/CandleCount.mq5 | 26 +++--- .../Nkanven/CandleCount/CloseTransactions.mqh | 74 ------------------ .../Nkanven/CandleCount/EntriesManager.mqh | Bin 19390 -> 13852 bytes Include/Nkanven/CandleCount/Parameters.mqh | 33 ++++---- 4 files changed, 26 insertions(+), 107 deletions(-) diff --git a/Experts/Nkanven/CandleCount.mq5 b/Experts/Nkanven/CandleCount.mq5 index 4dcaa4d..3a7afb9 100644 --- a/Experts/Nkanven/CandleCount.mq5 +++ b/Experts/Nkanven/CandleCount.mq5 @@ -14,22 +14,20 @@ #include //Trading conditions checks #include //Lot size calculator #include //Lot size calculator -#include //Emergency close of transaction //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ +#include -#include -CiATR* atr; - +CiMA* sma; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { //--- - atr = new CiATR(); - atr.Create(gSymbol, InpTimeFrame, InpAtrPeriod); + sma = new CiMA(); + sma.Create(gSymbol, InpTimeFrame, InpPeriods, InpAppliedPrice, InpMethod, PRICE_CLOSE); //--- return(INIT_SUCCEEDED); } @@ -49,24 +47,20 @@ void OnTick() //--- TimeCurrent(dt); - SymbolInfoTick(_Symbol,last_tick); + SymbolInfoTick(InpInstrument1,last_tick); + SymbolInfoTick(InpInstrument2, blast_tick); + + sma.Refresh(-1); + gSma = sma.Main(1); CheckOperationHours(); CheckPreChecks(); ScanPositions(); - //Get ATR values - atr.Refresh(-1); - gAtr = atr.Main(1); - if(!gIsPreChecksOk) return; - if(InpActivateRiskWatcher) - { - drawdownWatcher(); - CloseTransactions(); - } + Print("Good for trading..."); ExecuteEntry(); } //+------------------------------------------------------------------+ diff --git a/Include/Nkanven/CandleCount/CloseTransactions.mqh b/Include/Nkanven/CandleCount/CloseTransactions.mqh index ab1575d..e69de29 100644 --- a/Include/Nkanven/CandleCount/CloseTransactions.mqh +++ b/Include/Nkanven/CandleCount/CloseTransactions.mqh @@ -1,74 +0,0 @@ -//+------------------------------------------------------------------+ -//| CloseTransactions.mqh | -//| Copyright 2021, Nkondog Anselme Venceslas | -//| https://www.mql5.com | -//+------------------------------------------------------------------+ -#property copyright "Copyright 2021, Nkondog Anselme Venceslas" -#property link "https://www.mql5.com" - -CTrade trade; - -//+------------------------------------------------------------------+ -//| | -//+------------------------------------------------------------------+ -void CloseTransactions() - { - bool result = true; - int cts = PositionsTotal(); - ulong theTicket; - double positionProfit = 0.0; - - if(cts > 0) - { - for(int i = cts-1; i>=0; i--) - { - ulong ticket = PositionGetTicket(i); - if(PositionSelectByTicket(ticket)) - { - if(PositionGetInteger(POSITION_MAGIC)==InpMagicNumber) - { - if(positionProfit > PositionGetDouble(POSITION_PROFIT)) - { - positionProfit = PositionGetDouble(POSITION_PROFIT); - theTicket = ticket; - } - } - } - else - { - Print("Error (", GetLastError(), ") while selecting position by ticket"); - } - } - if(gEmergencyClose) - { - if(!trade.PositionClose(theTicket)) - Print("Error (", GetLastError(), ") while deleting all buy positions"); - } - } - } -//+------------------------------------------------------------------+ - -//+------------------------------------------------------------------+ -//| | -//+------------------------------------------------------------------+ -void drawdownWatcher() - { - double amountDiff, equity, balance, percentDiff; - balance=AccountInfoDouble(ACCOUNT_BALANCE); - equity=AccountInfoDouble(ACCOUNT_EQUITY); - gEmergencyClose = false; - - if(equity < balance) - { - amountDiff = balance - equity; - percentDiff = (amountDiff*100)/balance; - - Print("amountDiff ", amountDiff, " percentDiff ", percentDiff, " InpMaxDrawdown ", InpMaxDrawdown); - - if(InpMaxDrawdown < percentDiff) - { - gEmergencyClose = true; - } - } - } -//+------------------------------------------------------------------+ diff --git a/Include/Nkanven/CandleCount/EntriesManager.mqh b/Include/Nkanven/CandleCount/EntriesManager.mqh index 0651068ea423982b7462bf25755226b90d9b2a21..4767f920f09289432de6e81d048736e22e846350 100644 GIT binary patch delta 1335 zcma)6O>YuW6ulIIc0>vkXe#X#N>VX}hGIng0L9w0kR}pKx-iB#V5O7LkJuVDF%mZ} zTp3TIF5EP_w+TxV#l2A%E=+CoH@GxujQ0%#!h(;yOy0cr&OP_Md+yBp7lv1*-8ZH{ zj&74eH%X;+D$-@zs27&`uvFv#QdH6A&S(owD<*FQvsuKho0sB$CgG-JZUOi%>JWWSgz^YV|uif{VB?C)v-$|f%^oV39c zvy~$>O%cAhj|x;`qqb;;-xK`QPR`O1l6WPCuymW}JX=}fp)z`vX4&p_HoVjnDfsfd zR@iuzncJeWOrg*kLz`)4S%~NskxWPlljb2Ub;N2?ad&(w&;uIp#{KM&9X}Ur;X)&y zxMGnr7Md=#r77^ygjOaMe!H7Xw_vEfJ%}wDRT3RDEVxdIj$dJxI(|c6hd92q$TdE_ z?AURPpnA9;dnpN-(=sBG9OzW&DXlUyPzJ_e&sdT5n>jY9$F(ngxFt@~yIjJ#jIG=$ zUrlX$gs@!Pu#@d|jyCG>+A*Z6bc=#rT1@mr4<0j0`)9Dbbx)GKSL8lgBL%-x0enhF x^$OURIw?+XG-GZMKAvge5lS%avm#=p0MI`T*k}H^F!jp`Ujn-Cw%|_ literal 19390 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