Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 543

 
Konstantin Nikitin:

Grazie. In parole povere, per cosa dividiamo il profitto in valuta?

.../(OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2));
   
Maxim Kuznetsov:
Non si possono sommare i punti di due strumenti diversi.

Capisco che il valore dei punti è diverso, ma non importa in questo caso.

 
PolarSeaman:

Grazie. In parole povere, per cosa dividiamo il profitto in valuta?

Il valore dei punti nella valuta del deposito.
Per me sarebbe più corretto scrivere questa funzione su 1 carattere

int Punkts_B(const string symbol="", const int _Mag=-1)
  {
   double profit = 0;
   for(int t=0;t<OrdersTotal();t++)
     {
      if( !OrderSelect(t,SELECT_BY_POS,MODE_TRADES) )  continue;
      if( OrderSymbol()!=symbol )                      continue;
      if( OrderMagicNumber()!=_Mag )                   continue;
      if( OrderType()!=OP_BUY && OrderType()!=OP_SELL) continue;

      profit+= OrderProfit()+OrderSwap()+OrderCommission();
     }
   return( (int)MathFloor(profit/SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE)) );
  }

int xxx = Punkts_B("EURUSD", 12345) + Punkts_B("GBPUSD", 12345);
E sommare i punti se necessario quando si chiama.
 
Konstantin Nikitin:

Valore del punto nella valuta del deposito.

Cosa dicono le parole(OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2);?

Print(Punkts_B("GBPUSD", "AUDUSD",11151)) stampa zero;

 
PolarSeaman:

Come espressione di parole(OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2));

Print(Punkts_B("GBPUSD", "AUDUSD",11151));

Operatore condizionale ?:

 
Konstantin Nikitin:

Operatore condizionale ?:

Grazie.

 

Colleghi, aiutatemi.

Sto cercando di capire come lavorare con il registro, ho fatto un semplice Expert Advisor per il test. La lettura dei dati dal registro di sistema va senza problemi, ma ci sono problemi di scrittura, MT e crash di memoria... (((

Forse il mio occhio è già zuppo e non vedo l'ovvio...

File:
TestReg.mq5  25 kb
 

Dovete mettere i loro nomi accanto alle estremità delle curve nella finestra separatista, che dovrebbe essere collegata a loro.

Per favore, spiega come fare questo.

 
khorosh:

Devi mettere il loro nome accanto alle estremità delle curve nella finestra separatista, che dovrebbe essere collegata a loro.

Per favore, spiega come fare questo.

Oggetti - possono essere visualizzati in qualsiasi finestra del terminale e nelle sue sottofinestre.

 

Artyom Trishkin:

Oggetti - possono essere emessi in qualsiasi finestra del terminale e nelle sue sottofinestre.

--------------------------------------------------------------------------------------------------------------------------------------

Ho provato così, ma non funziona.

  if(ObjectFind("Spread")<0) 
    {
     ObjectCreate(1,"Spread", OBJ_TEXT, 0, Time[0],LevLabelSpread );
     ObjectSetText("Spread", "                    Spread", 10, "Arial", clrYellow);
    }
  else
    {
     ObjectMove(1,"Spread", 0, Time[0], LevLabelSpread);
    } 
Forse è qualcosa con la numerazione delle finestre. Se c'è una finestra separata nel grafico, il suo numero ==1?
 
Kirill Belousov:

sostituite nelle vostre espressioni - && con "AND AT THE SAME TIME", e sostituite || con "OR".

dovresti essere in grado di leggerlo e vedere come funziona.


la prima linea funzionerà sia con magic =777 (quando hand_orders=false) o magic = 0 (quando hand_orders=true)

la seconda linea funziona SEMPRE con majic=777, e con hand_orders=true funziona ADDIZIONALMENTE con majic=0

Grazie!
Motivazione: