Sto imparando a scrivere un consigliere... - pagina 2

 
Figar0 >> :

...Per il novizio non programmatore, potrebbe fare la differenza...

)) Questa è una parola grossa per me! Sono nel forex da soli 2,5 anni... Per tutto questo tempo ho guadagnato 2 volte: 1a volta su demo (ho aumentato il mio deposito di 50 volte), 2a volta su conto reale (il risultato è più modesto)

Ho fatto solo una conclusione: non c'è disciplina! Ho deciso di provare a scrivere qualcosa che non dipenda dalle mie emozioni).

 
rid >> :

E per aiutarvi a pensare più velocemente, fate prima correre il vostro esperto attraverso TUTTI i TICS e il risultato qui, per favore.

Il test è passato attraverso tutte le zecche comunque! Potete vederlo nelle foto...

 

Sembra che io abbia incasinato qualcosa in questo codice...

void ClosePos()
   {
      double pp;

        if (OrderType()==OP_BUY)
          {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue);
          }
        if (OrderType()==OP_SELL)
          {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            OrderClose(OrderTicket(), OrderLots(), Ask, 0, Red);
          }
   }


Continuo a ricevere un errore nel registro...

ticket non valido per la funzione OrderClose
errore OrderClose 4051
errore OrderSend 130

Questo controllo per chiudere va prima del segnale di ingresso opposto...

se c'è un segnale di acquisto

(OrderType()==OP_BUY)
chiude la vendita corrente

OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue)

E viceversa...

Ma l'intero registro si riempie di un errore...

Sembra che cerchi di chiudere ad ogni tick... Ma non ci sono condizioni...



 
Dove si trova OrderSelect?
 
Non lo so) È per questo che sono qui... per fare le cose per bene...
 
sergeev >> :
Dove si trova OrderSelect?

Leggi di questa funzione... convertita in questa variante:

void ClosePos()
   {
      double pp;
        if (OrderSelect(0, SELECT_BY_POS)==true) // Если есть открытый ордер
            { 
               if (OrderType()==OP_BUY)
                  {
                  pp=MarketInfo(OrderSymbol(), MODE_BID);
                  OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue);
                  }
               if (OrderType()==OP_SELL)
                  {
                  pp=MarketInfo(OrderSymbol(), MODE_ASK);
                  OrderClose(OrderTicket(), OrderLots(), Ask, 0, Red);
                  }
            }      
   }
 

Mi sarebbe piaciuto se non fosse stato per la qualità della modellazione

 
Da cosa dipende?
 

cercarlo, è necessario scaricare e ricalcolare la storia

 
ALex2008 писал(а) >>
Da cosa dipende?

Scarica le candele a minuti (per esempio da Alpari) e fai un test sulle candele a minuti.

Non puoi testare uno stop di 5 pip su candele a 4 ore.