Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 336

 
evillive:
Prova
Grazie.
 
evillive:
No, poi ci ha pensato e ha deciso che 140,15 o 140,35 è anche un prezzo elevato e potrebbe essere necessario. Il cliente non ha ancora deciso di cosa ha bisogno semplicemente ))))

artmedia70:
Bene... Quando finalmente decide cosa vuole, lascia che inizi a pensare...


Buona giornata!

Voi signori siete molto educati, visto il titolo di questo thread.

Ho iniziato a pensare. E mi sono reso conto che quello che mi avete consigliato non risolve il problema.

Non c'è nessun cliente))), sto scrivendo per me stesso. Il compito era fondamentalmente come spiegare il prezzo del consigliere dopo il punto decimale, al quale viene eseguita l'azione.

Il prezzo può essere XXX.01 o XXX.34 - non importa. XXX.00 che ho indicato come esempio.

Si è rivelato semplice.

int start()                                   // Спец. функция start
  {
//----
   double Price, Level, Level_2;                 // Текущая цена и уровень для расчета
   Price=Bid;                                    // Запрашиваем цену
   Level=MathFloor(Bid);                         // Задаем уровень XXX.00
   Level_2 = MathFloor(Bid)+50*Point;            // Задаем уровень ХХХ.50
                              
//----
   if (Price==Level)                                      // Если цена на уровне ХХХ.00
     {
      Comment("Курс был равен  заданному уровню ", Level);    // Сообщение трейдеру
     }
     
   if (Price==Level_2)                                    // Если цена на уровне ХХХ.50
     {
      Comment("Курс был равен  заданному уровню ", Level_2);   // Сообщение трейдеру
     }
   
   return;// Выход из start()

"Level2" = 50 può essere portato in variabili esterne e impostare qualsiasi livello che sia di interesse al momento.

La domanda viene rimossa.

P.S. L'esempio è per coppie di yen (due cifre decimali). Per 4 cifre dovrebbe essere scritto un po' diversamente (!I principianti, se interessati, chiedono a un professionista come)) ).

Scrivo nei forum molto raramente. Il desiderio di cambiare abitudini non è apparso.


Buona giornata a tutti voi e buona fortuna.

 
Gli avvisi e le stampe nel codice influiscono sul tempo di ottimizzazione?
Cioè l'ottimizzazione sa come bypassarli o deve essere fatto a livello dell'utente?
 
chief2000:
Gli avvisi e le stampe nel codice influenzano il tempo di ottimizzazione?
Cioè l'ottimizzazione sa come bypassarli o deve essere fatto a livello dell'utente?


Affetto, specialmente se si emette il risultato di un calcolo affamato di tempo. Meglio inserire il controllo IsOptimization() prima degli avvisi.
 
evillive:

Lo fanno, specialmente se si emette il risultato di un calcolo affamato di tempo. È meglio inserire il controllo IsOptimization() prima degli avvisi.

Intendevo i comandi Alert e Print stessi piuttosto che i calcoli per l'output. Non sono utili durante l'ottimizzazione, ma possono essere disabilitati automaticamente dall'ottimizzatore o no? (Ogni controllo aggiuntivo influisce anche sulla velocità di ottimizzazione).
 
chief2000:

Non mi riferivo ai calcoli dell'output, ma agli stessi comandi Alert e Print. Non sono utili durante l'ottimizzazione, ma sono automaticamente disabilitati dall'ottimizzatore o no? (ogni controllo aggiuntivo influisce anche sulla velocità di ottimizzazione)


Sia Alert, Print che Check hanno un effetto. Ma il controllo richiede meno tempo.
 
evillive:

Sia l'avviso che la stampa e il controllo sono interessati. Ma il controllo richiede meno tempo.

Per quanto ne so, Alert e Print in modalità di ottimizzazione (non test) sono semplicemente saltati dal tester, quindi non influenzano nulla... MarketInfo ha un impatto molto maggiore sulla velocità, può davvero rallentare il processo. Aiuta molto if(IsTesting()) e if(IsOptimization()); per esempio, se il programma controlla costantemente lo spread corrente, non è necessario nel tester.

 
alsu:

Per quanto ne so, Alert e Print in modalità di ottimizzazione (non test) sono semplicemente saltati dal tester, quindi non influenzano nulla... MarketInfo ha un impatto molto maggiore sulla velocità, può rallentare molto il processo. Qui aiuta molto if(IsTesting()) e if(IsOptimization()); per esempio, se il programma controlla costantemente lo spread corrente, non c'è bisogno di tester.


Se questo non viene risolto, i commenti possono davvero rallentare la MT.
Riguardo a MarketInfo - intendi il comando stesso? E per esempio l'uso di Bid/Ask (nella sua forma pura, per il simbolo corrente)?
 
chief2000:

Se questo non viene risolto, i commenti possono davvero rallentare MT.
Riguardo a MarketInfo - ti riferisci direttamente al comando stesso? E per esempio usando Bid/Ask (nella sua forma pura, per il simbolo corrente)?

Nel tester MarketInfo() non funziona, e Bid e Ask sono lenti e distorti. Quindi, su consiglio di Xrust, li prendo da iClose(NULL,0,0):

  if(IsOptimization() || IsTesting() || IsVisualMode())
  {
    Spread = 21; 
    spr = NormalizeDouble(Spread*Point,Digits);
    bid = NormalizeDouble(iClose(Symbol(),0,0),Digits);
    ask = NormalizeDouble(iClose(Symbol(),0,0)+spr,Digits);
  }
  else
  {
    Spread = MarketInfo(Symbol(),MODE_SPREAD);
    spr = NormalizeDouble(Spread*Point,Digits);
    bid = MarketInfo(Symbol(),MODE_BID);
    ask = MarketInfo(Symbol(),MODE_ASK);
  }
 
borilunad:

Nel tester MarketInfo() non funziona, e Bid e Ask sono lenti e distorti. Pertanto, su consiglio di Xrust, li ottengo da iClose(NULL,0,0):


Stampelle, imho.