Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 28

 
Vinin:

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?

 
lottamer:


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?


 
aiutatemi con questa parte di codice (manca il goto)
controllare se c'è un ordine aperto o pendente a nnn se non c'è, piazzare un ordine stoploss
 
sdm:
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?

 
PapaYozh:

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.

 
sdm:


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?

 
PapaYozh:

È chiaro?


Capito, grazie.
 
sdm:

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

 
PapaYozh:

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?

 
sdm:


QualepriceDelta dovremmo impostare? nessun ordine più vicino di 30 pip

E perché non possono essere abbinati?

PrezzoDelta = Punto * 30;

Confronto tra numeri reali