0 Views
0 Downloads
0 Favorites
MTCSwing
#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