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

 
oDin48:

In effetti, l'unico problema è quello di assegnare un numero di barra e scriverlo in una variabile, che può poi essere confrontata con il valore attuale.

Non ce n'è bisogno. Ogni barra ha già il suo numero. Tutto quello che devi sapere è su quale barra è stata chiusa una posizione di stop. A cosa servono le variabili? Cosa succede se l'Expert Advisor viene riavviato? Il valore della variabile sarà perso. E in questo modo, puoi trovare la barra alla quale qualsiasi posizione chiusa selezionata è stata chiusa, in qualsiasi momento.

Se avete esperienza di programmazione, potete capire e implementare la logica che ho descritto.

 
artmedia70:

Tutto quello che devi sapere è su quale barra è stata chiusa la posizione di stop.

Questo non è un problema perché ho bisogno che il primo e il secondo non si aprano sulla stessa barra.

Scrivo qualcosa come:

se ((Totale==0)&&(Condizione)) {Opn_B=true;} //esempio.

Il secondo ordine non si apre, ma se il primo fallisce, si chiude allo stop e la condizione scatta di nuovo e la seconda barra si apre, che è esattamente ciò di cui non ho bisogno. Ma se la prossima barra innesca un SL e la condizione è soddisfatta, allora sei il benvenuto.

Mi scuso se sono ottuso.

Ma il mio modo di vedere è il seguente.

1) Quando apriamo un ordine, dovremmo scrivere in una variabile il numero della barra in cui viene aperto.

2) Quando il numero di ordini è 0. Controlliamo il profitto dell'ultimo trade (già scritto).

3) Quando si apre l'ordine successivo in base al segnale, si controlla se l'ordine precedente era redditizio o no. Se era perdente, si controllano i numeri della barra attuale e della barra in cui è stato aperto l'ultimo ordine. Se non corrispondono, apriamo un ordine. (nessun problema a scrivere)

Conclusione: ho solo bisogno di una funzione che mi permetta di conoscere il numero della barra in modo da poter assegnare questo valore alla variabile nel passo 1 e confrontarlo con il valore attuale (numero della barra) nel passo 3.

 
oDin48:

Questo non è un problema perché ho bisogno che il primo e il secondo non si aprano sulla stessa barra.

Scrivo qualcosa come:

se ((Totale==0)&&(Condizione)) {Opn_B=true;} //esempio.

Il secondo ordine non si apre, ma se il primo fallisce, si chiude allo stop e la condizione scatta di nuovo e la seconda barra si apre, che è esattamente ciò di cui non ho bisogno. Ma se la prossima barra fa scattare SL e la condizione è soddisfatta, allora sei il benvenuto.

Mi scuso se sono ottuso.

Ma il mio modo di vedere è il seguente.

1) Quando apriamo un ordine, dovremmo scrivere in una variabile il numero della barra in cui viene aperto.

2) Quando il numero di ordini è 0. Controlliamo il profitto dell'ultimo trade (già scritto).

3) Quando si apre l'ordine successivo in base al segnale, si controlla se l'ordine precedente era redditizio o no. Se era perdente, si controllano i numeri della barra attuale e della barra in cui è stato aperto l'ultimo ordine. Se non corrispondono, apriamo un ordine. (nessun problema a scrivere)

Conclusione: ho solo bisogno di una funzione che mi permetta di conoscere il numero della barra in modo da poter assegnare questo valore alla variabile nel passo 1 e confrontarlo con il valore attuale (numero della barra) nel passo 3.

Comunque... Vai al thread di Igor Kim - troverai molti esempi lì. Non ho ancora tempo, mi dispiace...
 
artmedia70:
Utilizzare un delta di 2 - 3 punti quando si controlla la deviazione MASK


Devo aggiungere pip a ciascuno? È possibile programmare questi due o tre punti?
 
oDin48:

Questo non è un problema perché ho bisogno che il primo e il secondo non si aprano sulla stessa barra.

Scrivo qualcosa come:

se ((Totale==0)&&(Condizione)) {Opn_B=true;} //esempio.

Il secondo ordine non si apre, ma se il primo fallisce, si chiude allo stop e la condizione scatta di nuovo e la seconda barra si apre, che è esattamente ciò di cui non ho bisogno. Ma se la prossima barra innesca un SL e la condizione è soddisfatta, allora sei il benvenuto.

Mi scuso se sono ottuso.

Ma il mio modo di vedere è il seguente.

1) Quando apriamo un ordine, dovremmo scrivere in una variabile il numero della barra in cui viene aperto.

2) Quando il numero di ordini è 0. Controlliamo il profitto dell'ultimo trade (già scritto).

3) Quando si apre l'ordine successivo in base al segnale, si controlla se l'ordine precedente era redditizio o no. Se era perdente, si controllano i numeri della barra attuale e della barra in cui è stato aperto l'ultimo ordine. Se non corrispondono, apriamo un ordine. (nessun problema a scrivere)

Conclusione: ho solo bisogno di una funzione che mi permetta di conoscere il numero della barra in modo da poter assegnare questo valore alla variabile nel passo 1 e confrontarlo con il valore attuale (numero della barra) nel passo 3.



Questa funzione restituisce il numero di barra dell'ultima posizione chiusa

Chiamare

if(Total==0 && NumberOfBarCloseLastPos()!=0)
   {
   Opn_B=true;
   }
 

Grazie mille. Ho già pensato che stavo spiegando qualcosa di sbagliato, sapendo che la soluzione dovrebbe essere semplice.

Siete stati molto utili.

 

Qualcuno può dirmi, quando si scrive uno script o un EA, qual è il numero massimo di elementi che possono essere stipati in un array?

 
Dikii:

Qualcuno può dirmi, quando scrivo uno script o un EA, qual è il numero massimo di elementi che posso stipare in un array?

Da un filo vicino........

 

ragazzi!

come specificare in OrderSend il tempo di scadenza dell'ordine pendente "oggi".

 
smartemiy:

ragazzi!

come specificare in OrderSend il tempo di scadenza dell'ordine pendente "oggi".

Più correttamente sarebbe DeleteOrder al momento stabilito. Raramente il DC esegue questa scadenza e cancella l'ordine al comando del consulente!