Come codificare? - pagina 46

 
antone:
Quindi qualcuno può aiutarmi per favore? per esempio, scambierà solo un ordine tra le 5 e le 10 del mattino, ma può scambiarlo di nuovo in un altro momento...

È molto semplice, devi controllare il tempo di apertura dell'ultimo ordine nella cronologia e poi controllare il giorno con la funzione TimeDay. Se è oggi allora non scambia.

 
Kalenzo:
È molto semplice, devi controllare il tempo di apertura dell'ultimo ordine nella cronologia e poi controllare il giorno con la funzione TimeDay. Se è oggi allora non fare trading.

puoi darmi un semplice script su come usarli? non sono un programmatore, mi dispiace

Grazie!

 

1 trailing stop / ordini multipli

sto cercando di fare un EA che modifichi tutti gli ordini aperti stoploss allo stesso livello dello stoploss corrente, in modo che tutti gli ordini si chiudano allo stesso livello

extern int profit = 100;

extern int stop = 20;

int start()

{

int i, HstTotal=OrdersHistoryTotal();

for(i = HstTotal-1; i >= 0; i --)

{

if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;

OrderModify(i,OrderOpenPrice(),Bid-Point*stop,profit,0,Green);

}

}

 

Utilizzare inveceOrdersTotal() e MODE_TRADES

 
 
Kalenzo:
È molto semplice, devi controllare il tempo di apertura dell'ultimo ordine nella cronologia e poi controllare il giorno con la funzione TimeDay. Se è oggi allora non fare trading.

for(int k=0;k<OrdersTotal();k++)

{

OrderSelect(k,SELECT_BY_POS,MODE_TRADES;

if(OrderSymbol()== "GBPUSD" && OrderMagicNumber()== Magic_Number)

{

if(OrderOpenTime() != TimeCurrent ()) {Trade = true;}

if(OrderOpenTime() == TimeCurrent ()) {Trade = false;}

}

}

Cosa ho fatto di sbagliato?

 

Correzioni in rosso qui sotto.

Robert

antone:

for(int k=0;k<OrdersTotal();k++)

{

OrderSelect(k,SELECT_BY_POS,MODE_TRADES)

if(OrderSymbol()== Symbol() && OrderMagicNumber()== Magic_Number)

{

if(TimeDay( OrderOpenTime())!= Day()) {Trade = true;}

if(TimeDay( OrderOpenTime()) == Day() ) {Trade = false;}

}

}

Lo stesso tipo di codice può essere usato per controllare se l'ora di apertura è tra due ore o anche al minuto come le 11:45 per prevenire una nuova negoziazione.

int openHour = TimeHour(OrderOpenTime());

se (openHour > 10 && openHour < 13) Trade = false;

se (openHour = 13) Trade = true;

Cosa ho fatto di sbagliato? Per favore, aiutatemi.
 

ATTN Programmatori - Problema con i nuovi prezzi a 6 cifre

A tutti i programmatori.

Mi è stato fatto notare che c'è un problema con alcuni broker che usano un ulteriore posto decimale per i prezzi. Questo causerà un problema ovunque il punto sia usato in un calcolo per cose come StopLoss, TakeProfit o livelli di breakout.

C'è una soluzione semplice.

Ora uso la seguente funzione e sostituisco tutti i riferimenti a Point con myPoint.

Dichiaro una variabile all'inizio dell'EA.

doppio myPoint;

poi in init uso la funzione per impostare il valore.

init()

{

myPoint = SetPoint();

}

Poi la funzione.

// Imposta il valore di Point a 2 o 4 cifre decimali

// per gestire i broker che usano 3 e 5 cifre decimali

doppio SetPoint()

{

doppio mPoint;

se (cifre < 4)

mPoint = 0,01;

altrimenti

mPoint = 0,0001;

return(mPoint);

}

Ci sarebbe anche un problema con alcuni indicatori che usano Point per determinare dove disegnare le linee o le dimensioni degli istogrammi.

Per favore passate questo a qualsiasi forum o gruppo dove i programmatori hanno bisogno di queste informazioni.

Ho già postato al gruppo Yahoo MTE & I.

Spero che questo aiuti.

Robert

 

Gidday

Sto cercando un po' di aiuto, non riesco a capire come uscire da una posizione in un certo numero di barre/giorni. ad esempio vado lungo il lunedì e il sistema esce alla chiusura 5 barre/giorni dopo.

Qualsiasi aiuto sarebbe buono

Grazie

Beno

 

Beno,

Si potrebbe usare un codice simile a quello del post precedente per il non trading. Basta controllare se il giorno corrente è il numero di giorni dopo per la chiusura dal giorno di apertura. Il codice potrebbe essere modificato per usare anche ore o minuti.

Un altro modo sarebbe quello di calcolare il tempo per chiudere il trade come exit_time quando il trade è aperto. Poi per uscire basta controllare exit_time nel vostro codice di check exit.

Dovreste usare la formula corretta per aggiungere il valore corretto al tempo di apertura per ottenere il tempo di chiusura. Questo userebbe il numero di minuti per barra * il numero di barre successive alla chiusura aggiunto a OrderOpenTime().

Spero che questo aiuti.

Robert

Beno:
Buongiorno

Sto cercando un po' di aiuto, non riesco a capire come uscire da una posizione in un certo numero di barre/giorni. ad esempio vado lungo il lunedì e il sistema esce alla chiusura 5 barre/giorni dopo.

Qualsiasi aiuto sarebbe buono

Grazie

Beno
Motivazione: