[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 252

 
kon12:

Cari professionisti, potreste consigliarmi... Sto usando il disegno di linee nell'indicatore:

Il problema è che quando passo ad un altro timeframe le linee vengono disegnate secondo i nuovi parametri, ma quelle vecchie non vengono cancellate. Cosa dovrei aggiungere e dove dovrei metterlo in modo che quando mi sposto in un altro timeframe le vecchie linee non vengano disegnate? Grazie...
Dovete impostare deinit per cancellare le vecchie linee.
 

Dimmi cosa c'è che non va:

double order=AccountEquity()/4100;

...

ticket=OrderSend(Symbol(),OP_BUY,NormalizeDouble(order,2),Ask,10,Ask-SL*10*Point,Ask+SL*20*Point, "buy_order",1,0,Green);


che dà fuori: 2011.03.08 16:35 ScaplerM5 EURUSD,M5: OrderSend errore 4051
2011.03.08 16:35 ScaplerM5 EURUSD,M5: importo non valido per la funzione OrderSend

 
AndrejFX:

Dimmi cosa c'è che non va:

double order=AccountEquity()/4100;

...

ticket=OrderSend(Symbol(),OP_BUY,NormalizeDouble(order,2),Ask,10,Ask-SL*10*Point,Ask+SL*20*Point, "buy_order",1,0,Green);


che dà fuori: 2011.03.08 16:35 ScaplerM5 EURUSD,M5: OrderSend errore 4051
2011.03.08 16:35 ScaplerM5 EURUSD,M5: importo lotti non valido per la funzione OrderSend

Probabilmente, la dimensione del lotto è più piccola del consentito.

Cioè, se il lotto minimo consentito è 0,1, ma il vostro lotto = 0,09....

 

Buona sera a tutti!

Potete dirmi se TimeCurrent(); - restituisce l'ultimo tempo conosciuto del server, il tempo dell'ultima quotazione, o l'ultimo arrivo di qualsiasi strumento?

Secondo i miei dati sperimentali, è il secondo.

Voglio solo che qualcuno lo confermi!

Grazie in anticipo per la risposta!

 
BBSL:

Buona sera a tutti!

Potete dirmi se TimeCurrent(); - restituisce l'ultimo tempo conosciuto del server, il tempo dell'ultima quotazione, o l'ultimo arrivo di qualsiasi strumento?

Secondo i miei dati sperimentali, è il secondo.

Voglio solo che qualcuno lo confermi!

Grazie in anticipo per la risposta!

In realtà, è l'attuale server time.... che è stato ricevuto per ultimo...
 
coronel:
In realtà, è l'attuale server time.... che è stato ricevuto per ultimo...

Quindi, non il tempo dell'ultima quotazione per una data coppia di valute?
 
BBSL:

Secondo i miei dati sperimentali, il secondo...

Sì...

Questo è quello che dice nell'aiuto - "l'ultimo tempo del server". Non è legato a una valuta specifica.

 
sergeev:

Sì.



Quindi... Così ho avuto una domanda...

Ho bisogno in init(e) di usare una funzione che raccolga i tick per la valuta corrente...

Ho risolto così -

double init_array[10];


int init (){

int count = 0;
int time = 0;
int size = ArraySize(init_array); 


time = TimeCurrent();

while (count != size){

if (time != TimeCurrent()){

time = TimeCurrent();

init_array [count] = Ask; 

count = count + 1;

}

}


}

Ma, se fate attenzione al codice e alla mia domanda, ho un sacco di valori che si ripetono stupidamente...

Cosa fare, come far reagire Expert Advisor solo all'arrivo di nuovi tick per un dato strumento.

Ho un'idea per confrontare i e i+1, ma se due uguali arrivano in fila, perderemo uno dei valori.

Si prega di assistere))

 
BBSL:

Cosa fare, come fare in modo che l'EA reagisca solo ad un nuovo tick in arrivo per un dato simbolo?

rimuovere mentre

spostare il codice per iniziare

e parametri

int count = 0;
int time = 0;

fuori

 
sergeev:
rimuovere mentre


Sì, è possibile, ma nel caso in cui l'esperto sia multivaluta, non risolverà il problema, giusto?

Comunque, possiamo risolvere questo tranello nell'inite)?