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

 
Artyom Trishkin:

Provate.

Provare. La prima impressione è che vengono caricati 3 o 4 strumenti, mentre ne servono 10
Le storie sono caricate per tutti loro.
 
Valeriy Yastremskiy:
Provare. La prima impressione è che 3 o 4 strumenti si caricano, ma ho bisogno di 10
Le storie sono cariche su tutti loro.

Non lo so allora - è passato molto tempo da quando ho aperto un quad

 

Ho aperto mt4 per controllare rapidamente l'algoritmo.

È molto strano che funzioni correttamente nel tester, ma dopo averlo installato su un conto reale, inverte le operazioni. Il codice è semplice, solo 2 buffer di indicatori


 
MakarFX:
Grazie mille per il vostro aiuto. Ho ridisegnato questa parte del codice e con il filtro di prezzo abilitato, gli ordini pendenti sono ora impostati senza errori. Solo quei segnali vengono saltati quando l'ordine pendente è ancora sospeso. Come previsto. Grazie mille ancora una volta))) Ho solo una domanda - ci sono alcuni posti dove c'era un segnale ma quello in sospeso non era impostato e non c'erano errori. Quindi, non c'erano le condizioni adatte in questo posto e va bene, si può vivere con fiducia?))) E non c'erano nemmeno ordini pendenti in questo posto...
 
DanilaMactep:
Grazie mille per il vostro aiuto. Ho ridisegnato questa parte del codice e con il filtro di prezzo abilitato, gli ordini pendenti sono ora impostati senza errori. Solo quei segnali vengono saltati quando l'ordine pendente è ancora sospeso. Come previsto. Grazie mille ancora una volta))) Ho solo una domanda - ci sono alcuni posti dove c'era un segnale ma quello in sospeso non era impostato e non c'erano errori. Quindi, non c'erano condizioni adatte in questo posto e va bene, puoi vivere senza preoccupazioni? )))) E non c'erano nemmeno ordini pendenti in questo posto...
Se non c'erano le condizioni adatte ed è normale, ci si può convivere.
 
Artyom Trishkin:

Poi non so - è passato molto tempo da quando ho aperto un quad

Sbagliato, i dati degli altri strumenti che il tester prende sono attuali. Proprio da qui (da altri strumenti) si può calcolare la differenza rispetto all'ora corrente. Se è vicino all'ora corrente, e la storia è caricata, si può passare all'ora del tester. È una stampella).

 

Domanda: un pannello viene creato con una dimensione di 370, come posso ridimensionare a 200 quando comprimo il grafico?

#property strict

#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots   0

#include "PanelDialog.mqh"
//+------------------------------------------------------------------+
//| Global Variables                                                 |
//+------------------------------------------------------------------+
CPanelDialog ExtDialog;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//--- create application dialog
   if(!ExtDialog.Create(0,"Spread",0,12,12,250,370))
     return(INIT_FAILED);
//--- run application
   if(!ExtDialog.Run())
     return(INIT_FAILED);
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy application dialog
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
//---
 
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko:

Domanda: un pannello viene creato con una dimensione di 370, come posso ridimensionare a 200 quando comprimo il grafico?

E come si definisce la compressione dei grafici?
 
MakarFX:
E come si definisce la compressione dei grafici?
   if(id==CHARTEVENT_CHART_CHANGE) {
      // ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS); // Высота графика
   }
 
Vitaly Muzichenko:

Se la compressione in altezza

   int ChartHigh=(ChartGetDouble(0,CHART_PRICE_MAX,0)-ChartGetDouble(0,CHART_PRICE_MIN,0))/Point; //высота графика в пунктах
   if(ChartHigh>500)  
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)

se la compressione attraverso la larghezza

   if(ChartGetInteger(0,CHART_SCALE,0)>2) 
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)
in larghezza si può anche CHART_VISIBLE_BARS