[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 502
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
edit | delete Aiuto per trovare una funzione per piazzare ordini che tenga conto dello slippage e senza errori 130-134.
Mostrami la tua variante.
Print(GetLastError());
Con qualsiasi valore di SL e TP dà 134, spesso non piazza affatto un ordine.
si apre su condizione if(NumberOfOrders(NULL)==0)
Nel tester, invece di un ordine ne piazza sempre un mucchio, cioè non riesco a capire perché dovrebbe piazzare un ordine se non ci sono altri ordini aperti su questa coppia
NumderOrder=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Ask-SL*Point,Ask+TP*Point, "BUY",0,0,Red);
Print(GetLastError());
Con qualsiasi valore di SL e TP dà 134, spesso non piazza affatto un ordine.
si apre su condizione if(NumberOfOrders(NULL)==0)
Nel tester, invece di un ordine ne piazza sempre un mucchio, cioè non riesco a capire perché dovrebbe piazzare un ordine se non ci sono altri ordini aperti su questa coppia
ERR_NOT_ENOUGH_MONEY 134 Non ci sono abbastanza soldi per completare la transazione
Buona giornata. Sto facendo un EA, apre 2 ordini in una certa condizione (in senso figurato: quando il prezzo sale e scende). Quando il prezzo sale, ne apre 2, quando il prezzo scende, chiude quei 2 e ne apre altri 2. Un ordine va senza take profit, il secondo ordine con un take profit. C'è un problema con la seconda. Al momento in cui arriva la sua ora di morte, non è selezionato, ecco il codice per rimuovere gli ordini:
Lo stesso per OP_BUY. Sto confrontando i commenti per sapere con certezza che si tratta di un ordine aperto dal mio EA e non manualmente o da un altro EA. Ecco il problema con OrderSelect, semplicemente non vuole selezionare un ordine con un take profit. Quando arriva a un suo numero, OrderSelect restituisce false. Non c'è nessun errore nel log del tester, anche GetLastError dice che tutto è a posto (restituisce 0). Perché non viene selezionato? Perché nessun errore se non poteva selezionarlo? Grazie a tutti.
la condizione
viene controllato ad ogni iterazione.
Pensate a cosa equivale a e a cosa equivale OrdersTotal() -1 dopo la prima iterazione
OrderClose(OrderTicket(), NormalizeDouble(OrderLots(), Digits), NormalizeDouble(Ask, Digits), 0);
Solree:
NormalizeDouble(OrderLots(), Digits)
È necessario prendere in considerazione il passo ammissibile del cambio di lotto.
Per esempio, se il passo è 0,01, allora normalizzare per 2
e se il passo è 0,1, allora la normalizzazione dovrebbe essere 1