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

 
DhP:

È lo stesso, ma è più facile (più familiare) leggere il codice.

Sono troppo pigro per capirlo, ma qualcuno troverà facilmente un errore nel tuo codice senza sforzarsi. Aspettate.

Non ci sono errori. Tutto funziona bene individualmente, ma vorrei combinare tutto in un unico Expert Advisor. Almeno combinare Expert Advisors con linee, il segnale sonoro può anche essere eseguito separatamente come uno script.
 

A volte appare un messaggio nel diario di bordo:

prezzo non valido 1.37197000 per la funzione OrderSend

Di cosa potrebbe trattarsi? Appare dopo che lo stop loss è stato raggiunto.

 

il prezzo sbagliato è 1,37197000.

il prezzo corretto è 1,37197 o 1,3719, a seconda di quale DNS.

NormalizeDouble() è usato per impostare il numero di cifre dopo il punto decimale

 

Come posso tracciare l'apertura di una nuova barra in int start()?

Ho bisogno che il codice sia attivato non su ogni tick ma solo dopo l'apertura di una nuova barra

 

Se il tempo della barra non è lo stesso, significa che la barra è cambiata.

se non è uguale, significa che la barra è cambiata - fai quello che devi fare e ricorda l'ora.

 

Chi ha usato isCloseLastPosByStop() o isCloseLastPosByTake()? Mostrami come hai fatto.

 

Potreste consigliarmi come caricare l'indicatore su un grafico in modo programmatico?

C' è la funzione bool ServiceLoadCustomIndicator(int hwndChart,...); //hwndChart- descrittore di sistema della finestra del grafico, dove viene caricato l'indicatore.

Non so come conoscere il descrittore della finestra del grafico.

Ho solo bisogno di memorizzare GetTickCount sul primo tick dopo l'inizio dell'indicatore, ma il codice qui sotto non funziona - il terminale si blocca. Forse in init() RefreshRates non funziona affatto...?

 while(true){
  if(RefreshRates()) { tik=GetTickCount(); break; }
  Sleep(1); }
 
doon:

Chi ha usato isCloseLastPosByStop() o isCloseLastPosByTake()? Mostrami come hai fatto.

Non potrebbe essere più semplice:

if (isCloseLastPosByStop(OP_BUY, Magic)) {
// код если последняя поза Бай с магиком Magic закрылась по стоп-приказу
}
if (isCloseLastPosByTake(OP_SELL, Magic)) {
// код если последняя поза Селл с магиком Magic закрылась по тейку
}

Mettete le funzioni stesse al di fuori della funzione start(), potete anche alla fine di tutto il codice.

 
todem:

così almeno un po' di video dal vivo aggiungerà all'esperienza dei futuri programmatori qui
La sua spiegazione è insoddisfacente. Un "video live" con una stupida pubblicità per un broker non porta altro che pubblicità per il broker.
I tuoi post sono stati cancellati, sei stato avvisato.
 
artmedia70:

Più facile di così non si può:
Mettete le funzioni stesse al di fuori della funzione start(), o alla fine di tutto il codice.

Dovrei aggiungere che allo stesso link, dove doon ha preso il codice delle funzioni, c'è un esempio di script test_isCloseLastPosByStop.mq4, dove tutto è fatto come dice Artem. Dovresti dargli un'occhiata prima di chiedere.