Inoltre, anche il reverse trade sugli ordini fermati non funziona.
Ti è già stato detto che questo è inaffidabile
if(Volume[0]>1) return(0);
Questo non fa nulla
//+------------------------------------------------------------------+//| OnTick function |//+------------------------------------------------------------------+voidOnTick(){
staticdatetime timeCur; datetime timePre = timeCur; timeCur=Time[0];
bool isNewBar = timeCur != timePre;
if(isNewBar){
return; // Once per bar
}
return; // every tick
}
Si ritorna se è una nuova barra e si ritorna anche se non lo è, quindi si ritorna sempre senza fare nulla.
Quando trovi una nuova barra, devi resettare il valore.
voidOnTick(){
datetime timeCur=Time[0];
staticdatetime timePre = timeCur;
bool isNewBar = timeCur != timePre;
if(isNewBar){
timePre=timeCur;
//Do what you want at each new bar // Once per bar
}
//Do other stuff that you may need to do every tickreturn; // every tick
}
Il tuo codice per controllare l'ultimo ordine presuppone che l'indice più alto nella cronologia degli ordini sia l'ultimo trade chiuso. Non sono sicuro che questo sia sempre vero.
Ok, ho applicato il codice... ma quando provo a chiamare la funzione start ad ogni nuova barra... non prende nessun ordine...
voidOnTick(){
datetime timeCur=Time[0];
staticdatetime timePre = timeCur;
bool isNewBar = timeCur != timePre;
if(isNewBar){
timePre=timeCur;
//Do what you want at each new bar // Once per bar
start();
}
//Do other stuff that you may need to do every tickreturn; // every tick
}
Anche se aggiungo la funzione buyCall & sellcall all'interno della zona della nuova barra...e start() all'interno della zona tick...sta creando ordini multipli.
Insieme a questa funzione di inizio...ho la seguente funzione extra..che viene chiamata nella funzione principale.
int split(doppio x)
void BuyCall(double BC)
void SellCall(double SC)
e infine la funzione void onTick sulla quale sono confuso...come impostarla in modo che non ripeta gli ordini pendenti tick per tick
...solo una sequenza di ordini in sospeso in ogni ora...inoltre controllerà se un ordine in sospeso è stato fermato
...allora aprirà un altro trade nella direzione opposta...ma solo una sequenza all'ora.
Si prega di aiutare solo bloccato nella stessa area più e più volte ... ma ovviamente vuole imparare ... in modo che non ho bisogno di fare domande stupide in futuro
Inoltre, anche il reverse trade sugli ordini fermati non funziona.
Ti è già stato detto che questo è inaffidabile
Questo non fa nulla
Si ritorna se è una nuova barra e si ritorna anche se non lo è, quindi si ritorna sempre senza fare nulla.
Quando trovi una nuova barra, devi resettare il valore.
Il tuo codice per controllare l'ultimo ordine presuppone che l'indice più alto nella cronologia degli ordini sia l'ultimo trade chiuso. Non sono sicuro che questo sia sempre vero.
Ok, ho applicato il codice... ma quando provo a chiamare la funzione start ad ogni nuova barra... non prende nessun ordine...
Anche se aggiungo la funzione buyCall & sellcall all'interno della zona della nuova barra...e start() all'interno della zona tick...sta creando ordini multipli.
Insieme a questa funzione di inizio...ho la seguente funzione extra..che viene chiamata nella funzione principale.
int split(doppio x)
void BuyCall(double BC)
void SellCall(double SC)
e infine la funzione void onTick sulla quale sono confuso...come impostarla in modo che non ripeta gli ordini pendenti tick per tick
...solo una sequenza di ordini in sospeso in ogni ora...inoltre controllerà se un ordine in sospeso è stato fermato
...allora aprirà un altro trade nella direzione opposta...ma solo una sequenza all'ora.
Si prega di aiutare solo bloccato nella stessa area più e più volte ... ma ovviamente vuole imparare ... in modo che non ho bisogno di fare domande stupide in futuro
...voglio chiarire il mio concetto...:(
Grazie per il vostro tempo.