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

 
Tretyakov Rostyslav #:

E non ho notato l'elefante))) A cosa pensi che equivalga il prezzo di chiusura di un ordine aperto?

Prova a farlo in questo modo.

Un'altra domanda

Come calcolate il profitto in punti - è questo OrderProfit * Point?

 
Mihail Matkovskij #:

Allora SymbolInfoDouble

Perché non subito?

 
Alexander Avksentyev #:

Un'altra domanda

Il calcolo del profitto in pip è un OrderProfit * Point?

OrderProfit Restituisce il valore del profitto netto, (quelli nella valuta di deposito)
Point-
Dimensione del punto dello strumento corrente nella valuta di quotazione

Tutto da riferimento

 
Andrey Sokolov #:

OrderProfit Restituisce il valore del profitto netto, (quelli nella valuta di deposito)
Point - dimensione attuale del punto dello strumento nella valuta di quotazione

Tutto da riferimento

Sono d'accordo, ho letto il riferimento.

Ho moltiplicato il profitto per il Punto e ho ottenuto 0,00001 o meno.

 
Alexander Avksentyev #:

Sono d'accordo, ho letto il riferimento.

Ha moltiplicato il profitto per Punto e ha ottenuto 0,00001 o meno.

È una cosa strana da fare

 
Alexander Avksentyev #:

Un'altra domanda

Il calcolo del profitto in pip è un OrderProfit * Point.

Il prezzo può passare 20 pip e dare 50$ di profitto.

Può passare in 5 punti, ma il profitto sarà di 80 dollari

Questo è lo stesso per ogni simbolo, con il franco il profitto sarà maggiore che con il canadese nello stesso passaggio in pip

 
Artyom Trishkin #:

Perché non subito?

Ho scritto un semplice esempio online. Non sono nemmeno entrato nell'editor. Alexander è un programmatore principiante e non ha bisogno di alcuna complessità extra. Date un'occhiata al suo codice qui sopra. Ma se stiamo parlando di sviluppare un robot multisimbolo, potete usare SymbolInfoDouble. Chi le impedisce di farlo?

 
Mihail Matkovskij #:

La funzione SymbolInfoTick scrive i dati di tick in una struttura specialeMqlTick, dai cui campi possono essere recuperati.

grazie a

 

Un'altra domanda è venuta fuori

Ho fatto la scritta nell'angolo

//+-----------------------------------------------------------------------------------------------+
int OnInit()
  {
Start          = TimeCurrent();
MaxMartinLot   = Lot*MathPow(1.4,OrdersClose);
MaxMartinLot2  = Lot*MathPow(K_Martin2,OrdersClose2);
AC             = StringConcatenate(" ", AccountCurrency());
int Y          = 20;
DrawLABEL("lab_Take",1,5,Y,clrLime,"LOT: "); 
return(INIT_SUCCEEDED);
  }
//+-----------------------------------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+-----------------------------------------------------------------------------------------------+
void OnTick()
  {
// Получим значение индикатора
   dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.

// Если нет открытых ордеров, то входим в условие
      if(CountOrders()==0)
     {
// Если появился сигнал на покупку, то откроем ордер на покупку
      if(bSignalBuy() == true)
         vOrderOpenBuy();

// Если появился сигнал на продажу, то откроем ордер на продажу
      if(bSignalSell() == true)
         vOrderOpenSell();
     }
       DrawLABEL("lab_Take",1,5,0,Color(),StringConcatenate("LOT: ",DoubleToStr(LOT(),2)));  
  }

nella linea gialla dà questo avvertimento:

possibile perdita di dati a causa della conversione del tipo

Sembra che li abbia confusi.

tutto funziona

se non c'è transazione, solo un colore è acceso

se c'è un accordo aperto - si accende un altro colore

Color() lo imposta in questo modo:

double Color()
  {
   double CL =clrRed;
   if(CountOrders()==0) CL =clrYellow;
   return(CL);
  }
Si prega di controllare.
 
законопослушный гражданин possibile perdita di dati a causa della conversione del tipo

Sembra che li abbia confusi.

tutto funziona

se non c'è transazione, solo un colore è acceso

se c'è un accordo aperto - si accende un altro colore

Color() lo imposta in questo modo:

Si prega di controllare.

La funzione Color dovrebbe restituire colore, non doppio.

color Color()
  {
   color CL = clrRed;
   if(CountOrders() == 0) 
     CL = clrYellow;
   return(CL);
  }

Il link che il motore del sito ha aggiunto sarebbe anche utile da studiare.