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

 
rapid_minus:
Buon pomeriggio, la domanda che ho fatto a pagina 1048 è così complicata che i professionisti non conoscono la risposta? O è solo ignorare (beh, ad alcune persone non piaccio!)?
Qual è la domanda, è la risposta. Leggete la nota alla funzione Sleep() Questa è una risposta alla vostra prima domanda.
 
Ekburg:

Buon pomeriggio.

Sto lavorando sul codice di un esperto e non riesco a capire una sola riga:

Dal nome della variabile capisco cosa voleva ottenere il programmatore.

Ma al mio livello di programmazione amatoriale non capisco nulla tranneMarketInfo(Symbol(),MODE_MINLOT).

Spiegare per cosa, dove e con quale salsa)

Hai capito cos'è il logaritmo?

Anche se questo codice non è molto chiaro. Non è chiaro perché il logaritmo di un valore debba essere diviso per logaritmo(10) se log(10) sarà sempre 1.

 
kocunyc89 nel codice, nell'indicatore che appare nell'angolo dello schermo
#property indicator_chart_window  //Вывод информации в окно графика
#property strict
int Число=25;

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
{
  // Проверка наличия метки для вывода информации
  if(ObjectFind("Итог")<0)
  {
    ObjectCreate("Итог", OBJ_LABEL, 0, 0, 0);   // Создание
    ObjectSet("Итог", OBJPROP_CORNER, 1);  // Правый верхний угол
    ObjectSet("Итог", OBJPROP_XDISTANCE, 10); //X   
    ObjectSet("Итог", OBJPROP_YDISTANCE, 10);       //Y
  }
  ObjectSetText("Итог", string(Число), 14,"Arial",Yellow);
  return(0);
}

void OnDeinit(const int reason)
{
  ObjectDelete("Итог");
}
 
AlexeyVik

log(10) sarà sempre 1.

Alert(log(10)); log(10)=2.302585092994046. MathLog è un logaritmo naturale, proprio come il semplice Log. Non c'è un registro decimale in MQL. Volevo il logaritmo decimale e attraverso di esso il numero di cifre nella parte intera del numero, il cosiddetto ordine dei numeri. Il logaritmo decimale LG(X) può essere ottenuto attraverso qualsiasi altro logaritmo. Qui LG(X)=Log(X)/Log(10)
 
Non capisco dove sia la risposta. Vuoi dire questo: "La funzione ha un controllo incorporato dello stato del flag EA stop ogni 0,1 secondi"? Se è così, come si può rimuovere questa bandiera?
 
LRA:

Scusa, non sono molto bravo a programmare, puoi aiutarmi a mettere tutto in un indicatore?
#property indicator_chart_window  //Вывод информации в окно графика
#property strict
int Число=25;

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
{
  // Проверка наличия метки для вывода информации
  if(ObjectFind("Итог")<0)
  {
    ObjectCreate("Итог", OBJ_LABEL, 0, 0, 0);   // Создание
    ObjectSet("Итог", OBJPROP_CORNER, 1);  // Правый верхний угол
    ObjectSet("Итог", OBJPROP_XDISTANCE, 10); //X   
    ObjectSet("Итог", OBJPROP_YDISTANCE, 10);       //Y
  }
  ObjectSetText("Итог", string(Число), 14,"Arial",Yellow);
  return(0);
}

void OnDeinit(const int reason)
{
  ObjectDelete("Итог");
}
File:
j_1.mq4  6 kb
 
rapid_minus:
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Dormire(10000);
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Dormire(10000);
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Dormire(10000);
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Dormire(10000);
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Uno dei motivi: dopo 10 secondi di slittamento, Bid diventa vecchio e ci sarà un errore. Controllare i registri. Potete aumentare lo slittamento o RefreshRates(). Nel tester scivola glop e tutto è OK
 
kocunyc89:   bastone ... nell'indicatore

Per prima cosa, mettete questo alla fine dell'indicatore. Quando vedi il marchio sullo schermo, cerca di capire come metterci quello che ti serve. Qui ti danno dei consigli, ma devi farlo da solo.

  int Число=25;

  if(ObjectFind("Итог")<0)        // Проверка наличия метки для вывода информации
  {
    ObjectCreate("Итог", OBJ_LABEL, 0, 0, 0);   // Создание
    ObjectSet("Итог", OBJPROP_CORNER, 1);       // Правый верхний угол
    ObjectSet("Итог", OBJPROP_XDISTANCE, 10);   //X   
    ObjectSet("Итог", OBJPROP_YDISTANCE, 10);   //Y
  }
  ObjectSetText("Итог", string(Число), 14,"Arial",Yellow);   // Вывод в метку
 
rapid_minus: La funzione ha un controllo incorporato dello stato della bandiera di stop dell'EA ogni 0,1 secondi. come posso rimuovere questa bandiera?
La bandierina alza il terminale per informare l'Expert Advisor che verrà silenziato tra tre secondi. Vedendo la bandiera, lo scivolo si illumina e non impedisce all'esperto di raccogliere i giocattoli prima di fuggire.
 
LRA:
Alert(log(10)); log(10)=2.302585092994046. MathLog come semplicemente Log è unlogaritmo naturale. Non c'è un registro decimale in MQL. Volevo il logaritmo decimale e attraverso di esso il numero di cifre nella parte intera del numero, il cosiddetto ordine dei numeri. Il logaritmo decimale LG(X) può essere ottenuto attraverso qualsiasi altro logaritmo. Qui LG(X)=Log(X)/Log(10)

log(10) non è davvero 1, ma il fatto che mql non abbia un logaritmo decimale mi ha sorpreso...

Che cos'è allora? https://docs.mql4.com/ru/math/mathlog10 anche se c'è un errore nel testo.

La questione si risolve in un modo molto più semplice.

(int)MathAbs(MathLog10(MarketInfo(_Symbol, MODE_LOTSTEP)));