#include <_Custom_Operacional/Estrategia/NsVPRStg.mqh>
#include <_Custom_Operacional/Estrategia/MovingAverageStg.mqh>
#include <_Custom_Operacional/Operacoes.mqh>
input group "Ns Variation Percent"
input double variacaoPercentilNs = 0; //Variação Percentil
input int atrasoVelasNs = 24; //Delay de Contagem do Indicador
input group "Moving Average"
input int periodoMA = 5; //PerÃodo da Média
input double desvioMA = 10; //Desvio da Média
input ENUM_MA_TYPE tipoMA = CLOSE; //Tipo de Média
input int espelhoMA = 1; //Delay de Contagem do Indicador
input group "Operacional"
input double lotesEA = 1; //Lotes
input double takeProfitOps = 1500; //Take Profit
input double stopLossOps = 4000; //Stop Loss
//Strategies
NsVPRStg nsStrategy;
MovingAverageStg mAvgStrategy;
Strategy eaStg;
//Operacional
Operacoes ops;
int OnInit() {
nsStrategy.set(variacaoPercentilNs, atrasoVelasNs);
mAvgStrategy.set(periodoMA, desvioMA, tipoMA, espelhoMA);
ops.setOrderDefault(_Symbol, lotesEA, 192646);
ops.setDefaultStops(takeProfitOps, stopLossOps);
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason) {}
void OnTick() {
if(!ops.posicaoAberta()){
ENUM_STRATEGY_SIGN sinalNsVPR = nsStrategy.getSign();
mAvgStrategy.getSign();
ENUM_STRATEGY_SIGN sinalMAvg = mAvgStrategy.getUltimoSinal();
if(eaStg.isBuy(sinalNsVPR) && eaStg.isBuy(sinalMAvg))
ops.compraPadrao();
else if(eaStg.isSell(sinalNsVPR) && eaStg.isSell(sinalMAvg))
ops.vendaPadrao();
}else{
ops.stopPadrao();
nsStrategy.restartStrategy();
}
}
Comments