[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 38

 
nuan:

Questo significa che chiude l'ordine nello stesso secondo, non in 30 minuti.


Ho messo il codice come nel tuo esempio


Il robot non chiude per altri motivi, cioè non chiude allo stop o al profitto.


1 2011.07.29 00:00 comprare 1 0,01 1,4328 1,3328 1,5328 0,00 1000,00
2 2011.07.29 00:01 chiudere 1 0,01 1,4327 1,3328 1,5328 -0,10 999,90
3 2011.07.29 00:01 comprare 2 0,01 1,4329 1,3329 1,5329 0,00 999,90
4 2011.07.29 00:01 chiudere 2 0,01 1,4326 1,3329 1,5329 -0,30 999,60
5 2011.07.29 00:01 comprare 3 0,01 1,4328 1,3328 1,5328 0,00 999,60
6 2011.07.29 00:03 chiudere 3 0,01 1,4327 1,3328 1,5328 -0,10 999,50
7 2011.07.29 00:03 comprare 4 0,01 1,4329 1,3329 1,5329 0,00 999,50
8 2011.07.29 00:03 chiudere 4 0,01 1,4329 1,3329 1,5329 0,00 999,50


Mettete tutto alla fine della funzione start(). Le vostre operazioni dovrebbero venire prima.

datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPosTime();
 
nuan:
Sostituire in start() con questa opzione:
 datetime CloseTime;
//=====================
 int start(){

   if(TimeCurrent()-CloseTime > 30*60){CloseAllPos();CloseTime=TimeCurrent();}//Можно поставить в любом месте функции старт.
  return(0);
 }
//====================
 
forexnew:

Ho capito.

E se consideri di aprire un conto con $0 come inizio, e la 1a ricarica come una ricarica. È possibile determinare programmaticamente tutte le ricariche (compresa la prima) che sono state fatte sul conto?


:-Р

Stai remando nella direzione sbagliata... :-)))

C'è una funzione

double AccountBalance( ) 

con il suo aiuto si definisce lo stato del saldo del tuo conto per le operazioni chiuse in un certo momento.

Poi - supponiamo che tu sia entrato nel mercato - deficit fluttuante sul tuo conto con posizioni aperte, e poi depositi dei fondi sul tuo conto... Qui dovremmo determinare la quantità di split (se c'è) per correggere il volume (verso l'alto) delle posizioni aperte al fine di mantenere la "tolleranza" iniziale al drawdown/profitto, diciamo, in punti percentuali del capitale, da cui è stato calcolato il volume delle posizioni di mercato "iniziali" (prima dello split). Qual è la soluzione a questo problema?

 
CloseTime 
Нужно задавать этот параметр? если да то как?
 
nuan:


Non farlo. È una variabile temporale "intermedia", sempre uguale all'ultimo tempo di chiusura.

Il tempo di funzionamento è impostato in secondi. Nel vostro caso è 30*60.
Potete sostituire 30 con qualche variabile, per esempio, exstern int closetime = 30.
Allora il tempo sarà così: closetime*60.

 
charter:


Non farlo. È una variabile temporale "intermedia", sempre uguale all'ultimo tempo di chiusura.

Il tempo di funzionamento è impostato in secondi. Nel vostro caso è 30*60.
Potete sostituire 30 con qualche variabile, per esempio, exstern int closetime = 30.
Allora il tempo sarà così: closetime*60.

Ho appena provato lo stesso, è alla fine del corpo start.... Non capisco perché è così. Forse c'è un'altra opzione?
 
Roman.:


:-Р

Stai remando nella direzione sbagliata... :-)))

C'è una funzione

con il suo aiuto si determina lo stato di equilibrio del vostro conto di trading per le operazioni chiuse in un certo momento.

Poi - supponiamo che tu sia entrato nel mercato - deficit fluttuante sul tuo conto con posizioni aperte, e poi depositi dei fondi sul tuo conto... Qui dovremmo determinare la quantità di split (se c'è) per correggere il volume (verso l'alto) delle posizioni aperte al fine di mantenere la "tolleranza" iniziale al drawdown/profitto, diciamo, in punti percentuali del capitale, da cui è stato calcolato il volume delle posizioni di mercato "iniziali" (prima dello split). Qual è la soluzione a questo problema?


Se inizialmente avete determinato il rapporto tra lo StartBalance (saldo iniziale) e lo StarLots (lotto iniziale) secondo i rischi specificati, allora il valore del capitale dovrebbe essere determinato:

if(AccountEquity()<StartBalance) Top-up = (AccountBalance()+(StartBalance-AccountEquity()))*New Lot/StarLots

Questo esclude AccountCredit(). Se ho capito bene, naturalmente.

 
nuan:
Ho appena provato la stessa cosa, è alla fine del corpo start.... Non capisco perché questo sia il caso. Forse c'è un'altra opzione?
Cerca un errore in qualcos'altro.
Entrambe le opzioni dovrebbero funzionare.
 
grazie mille!
 

Salve a tutti. Ho una domanda per voi. Ho bisogno di trovare il massimo e il minimo più vicini. Ma che dovrebbero essere entro + - 10 punti di Open[0];

Ora ce l'ho così:

per (int i=1;i<100;i++)

se (High[i+1]<High[i] && High[i]>High[i-1] break;

trova il massimo più vicino,

Se aggiungo il confronto High[i]>(Open[0]+0.0010) e High[i]<(Open[0]+0.0020) questo è ciò che appare

se (High[i+1]<High[i] && High[i]>High[i-1] && High[i]>(Open[0]+0.0010) && High[i]<(Open[0]+0.0020) break;

Il programma recupera il massimo sbagliato, qual è il problema?

Non ho ancora provato il minimo.