Código gerado pelo ChatGPT

 

Prezados senhores(as),

Bom dia.

O código em anexo foi gerado pelo ChatGPT com base nos parâmetros que informei.

A princípio tinha aproximadamente 58 erros. A IA não conseguiu resolver (inclusive me aconselhou a procurar um programador experiente) rsrs.

Coloque a expressão inicial void OnStart().

A quantidade de erros diminuiu, porém, permaneceram 2. Eu confesso que não entendo de programação, por isso, 

busco ajuda de vocês. Se for possível agradeço!

Atenciosamente,

Wilson

input int MA1Period = 9;
input int MA2Period = 72;
input int InitialVolume = 1;
input int SubOperationVolume1 = 3;
input int SubOperationVolume2 = 8;
input int TakeProfit1 = 200;
input int TakeProfit2 = 200;
input int TakeProfit3 = 100;
input int StopLoss3 = 100;

void OnStart()
{

bool ordersOpen(){
    bool orders = false;
    for(int i=0; i<OrdersTotal(); i++){
        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
            if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber()){
                orders = true;
                break;
            }
        }
    }
    
    return orders;
}

void openTrade(double volume, int sl, int tp){
    if(!ordersOpen()){
        if(volume > 0){
            if(OrderSend(Symbol(), OP_BUY, volume, Ask, 3, sl, tp, "Buy", MagicNumber(), 0, Green)){
                Print("Buy order sent for ", volume, " lot(s) at price ", Ask);
            }
        }
        else{
            if(OrderSend(Symbol(), OP_SELL, -volume, Bid, 3, sl, tp, "Sell", MagicNumber(), 0, Red)){
                Print("Sell order sent for ", -volume, " lot(s) at price ", Bid);
            }
        }
    }
}

void closeTrade(){
    if(ordersOpen()){
        for(int i=0; i<OrdersTotal(); i++){
            if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
                if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber()){
                    if(OrderClose(OrderTicket(), OrderLots(), Bid(), 3, Yellow)){
                        Print("Closed order ", OrderTicket(), " at price ", Bid);
                    }
                }
            }
        }
    }
}

void OnTick(){
    double  CrossesAbove;
    double  CrossesBelow;
    double ma1 =  iMA(Symbol(), 0, MA1Period, 0, MODE_SMA, PRICE_CLOSE, 0);
    double ma2 =   iMA(Symbol(), 0, MA2Period, 0, MODE_SMA, PRICE_CLOSE, 0);

    if((CrossesAbove(ma1, ma2){
        openTrade(InitialVolume, 0, TakeProfit1);
    }
    else if (CrossesBelow(ma1, ma2){
        openTrade(-InitialVolume, 0, TakeProfit1);
    }
    else{
        for(int i=0; i<OrdersTotal(); i++){
            if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
                if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber()){
                    if(OrderProfit() < 0){
                        double volume = SubOperationVolume1;
                        if(OrderType() == OP_SELL){
                            volume = -volume;
                        }
                        if(CrossesAbove(ma1, ma2)){
                            openTrade(volume, 0, TakeProfit2);
                            closeTrade();
                            return;
                        }
                    }
                    else if(OrderProfit() >= TakeProfit1){
                        closeTrade();
                        return;
                    }
                    else{
                        double volume = SubOperationVolume2;
                        if(OrderType() == OP_SELL){
                            volume = -volume;
                        }
                        if(CrossesAbove(ma1, ma2)){
                            openTrade(volume, StopLoss3, TakeProfit3);
                            closeTrade();
                            return;
                        }
                    }
                }
            
            }
       }
   }
 

Infelizmente, não são só dois erros mas sim muitos. Toda a estrutura é inválida. É uma mescla de conceitos que não combinam.

Como não sabe programar vai ser difícil explicar-lhe o que fazer de forma correcta.

Aconselho-lhe a nunca utilizar o ChatGPT—deve ou aprender a programar, ou a contratar um programador humano para o fazer por si.

 
Fernando Carreiro #:

Infelizmente, não são só dois erros mas sim muitos. Toda a estrutura é inválida. É uma mescla de conceitos que não combinam.

Como não sabe programar vai ser difícil explicar-lhe o que fazer de forma correcta.

Aconselho-lhe a nunca utilizar o ChatGPT—deve ou aprender a programar, ou a contratar um programador humano para o fazer por si.

Obrigado pelo retorno. Um abraço!