Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 28
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Prova a usareDoubleToStr
Grazie mille.
Ho capito che il terminale conta i valori esatti e mi mostra solo i valori "troncati", giusto? E per vedere i valori esatti bisogna fareDoubleToStr?
Grazie mille.
Ho capito che il terminale conta i valori esatti e mi mostra solo quelli "tagliati", giusto? E per vedere i valori esatti devo fareDoubleToStr?
Sì
controllare se c'è un ordine aperto o pendente a nnn se non c'è, piazzare un ordine stoploss
Aiutatemi con questa parte del codice (manca il goto)
Ho bisogno di controllare se c'è un ordine aperto o pendente a nnn prezzo e se non c'è inserire un ordine stoploss.
Allora, come ti aiuterebbe Goto?
Usa OrdersTotal() per ottenere il numero di ordini aperti e in sospeso.
Di conseguenza, se ce ne sono, allora fai un overshoot e confronti il prezzo di apertura di ogni ordine con il tuo nnn.
Se non ci sono ordini, allora tu imposti il tuo.
Dove manca il goto qui?
Allora, come ti aiuterebbe Goto?
Usa OrdersTotal() per ottenere il numero di ordini aperti e in sospeso.
Di conseguenza, se ce ne sono, allora fai un overshoot e confronti il prezzo di apertura di ogni ordine con il tuo nnn.
Se non ci sono ordini, allora tu imposti il tuo.
Dove manca il goto qui?
1 Non ho bisogno di tutti gli ordini ma solo di vendere e sellstop // correzione
Non so come uscire dal ciclo e piazzare l'ordine (tutte le volte che cerco di piazzare l'ordine senza passare dal ciclo) o come entrare di nuovo nel ciclo.
1 Non ho bisogno di tutti gli ordini, ma solo di vendere e sellstop
2 Non so come uscire dal ciclo per comprare (tutte le volte che metto ordini senza passare per tutto il ciclo) o rientrare nel ciclo
1. Chi o cosa vi impedisce di analizzare il tipo di ordine?
Creare una variabile bandiera, inizializzarla, controllare l'ordine e, se necessario, cambiare il valore della variabile bandiera. Dopo il ciclo, a seconda del valore della bandiera, si piazza l'ordine.
È chiaro?
È chiaro?
Capito, grazie.
Non riesco a mettere bene la punteggiatura :-)
Print("Ordini da ",Koob,", Ordini Vendi = ",Koos);
oo=0; // flag se l'ordine esiste
se (Koos <= Koob) // se aperto!L'ordine di vendita è inferiore o uguale alla quantità di ordini aperti da
per (i=0; i<k; i++)
{if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{if (OrderType()==OP_SELL || OrderType()==OP_SELLSTOP) // allora se c'è un ordine di vendita aperto o pendente
{ se (PraiceSs = OrderOpenPrice()) { oo=1; } //con PraiceSs impostato su oo
}
}
}
se (oo=0) {OrderSend(Symbol(),OP_SELLSTOP,v,PraiceSs, ,Sl,Tp, ,mn,0,Green);} //put sellstop
dice la linea " if ( PraiceSs= OrderOpenPrice()) { oo=1; } " - '=' - assegnazione illegale usata
ps PraiceSs -double, oo -int
In primo luogo, è un'operazione di confronto di uguaglianza '=='.
In secondo luogo, le variabili di tipo doppio non possono essere confrontate sull'uguaglianza, ma devono essere confrontate sulla prossimità: MathAbs( PraiceSs - OrderOpenPrice() ) <= PrezzoDelta
Innanzitutto, l'operazione di confronto per l'uguaglianza è "==".
In secondo luogo, le variabili di tipo doppio non possono essere confrontate sull'uguaglianza, devono essere confrontate sulla vicinanza: MathAbs( PraiceSs - OrderOpenPrice() ) <=
Qual è ilPriceDelta allora? Nessun ordine può essere più vicino di 30 pips
e perché non possono essere confrontati?
QualepriceDelta dovremmo impostare? nessun ordine più vicino di 30 pip
E perché non possono essere abbinati?
PrezzoDelta = Punto * 30;
Confronto tra numeri reali