Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 922

 
Artyom Trishkin:

Aggiungete semplicemente un altro array CArrayObj all'array CArrayObj: Add()

Non funziona così. conversione dei parametri non consentita

A proposito, se ha importanza. Il mio oggetto da aggiungere all'array è una classe ereditata da CArrayObj.

class CCustomClass : public CArrayObj
{
}




CCustomClass obj1;
CCustomClass obj2;
...

CArrayObj objects_array;
objects_array.Add(obj1); 
Beh, giura all'ultima riga - conversione dei parametri non consentita.
 
objects_array.Add(GetPointer(obj1)); 
Funziona, non ho visto che non avevo un puntatore.
 
TaywinLannister:

Cari membri del forum aiutatemi per favore!!!

Voglio assegnare uno step di prezzo a una variabile:

int V=SymbolInfoInteger(Symb,SYMBOL_POINT);

errore: 'SymbolInfoInteger' - nessuno degli overload può essere applicato alla chiamata di funzione

Qual è il mio errore?


int V=(int)SymbolInfoInteger(Symb,SYMBOL_POINT);

Quindi provate.

 
foreXteller:

Cari membri del Forum!

Per favore consigliatemi!!!

La finestra di MetaTrader 5 mostra i valori Bid& Ask, che (per quanto ho capito) determinano la vincita/perdita.

Tuttavia, quando cerco di usare le quotazioni dei minuti della storia per testare la mia strategia, queste quotazioni non contengono i valori di Bid e Ask, ma danno i valori " OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL","VOL","SPREAD". Non è abbastanza chiaro come prendere Bid e Ask da questi valori, così come come calcolare lo spread.

Tutto è assolutamente chiaro. Descrivere in modo più dettagliato cosa si intende esattamente con "quando cerco di usare le citazioni della cronologia dei minuti"? Cosa stai facendo o vuoi fare esattamente?

 
TaywinLannister:

Cari membri del forum aiutatemi per favore!!!

Voglio assegnare uno step di prezzo a una variabile:

int V=SymbolInfoInteger(Symb,SYMBOL_POINT);

errore: 'SymbolInfoInteger' - nessuno degli overload può essere applicato alla chiamata di funzione

Qual è il mio errore?


Aiuto diSymbolInfoInteger:

1. Restituisce direttamente il valore della proprietà.

long  SymbolInfoInteger( 
   string                    name,      // символ 
   ENUM_SYMBOL_INFO_INTEGER  prop_id    // идентификатор свойства 
   );

2. Restituisce vero o falso a seconda del successo della funzione. Se ha successo, il valore della proprietà viene messo nella variabile di destinazione passata per riferimento dall'ultimo parametro.

bool  SymbolInfoInteger( 
   string                    name,      // символ 
   ENUM_SYMBOL_INFO_INTEGER  prop_id,   // идентификатор свойства 
   long&                     long_var   // сюда примем значение свойства 
   );


Cioè OR long OR bool.

 
TaywinLannister:

Cari membri del forum aiutatemi per favore!!!

Voglio assegnare una variabile al passo di prezzo:

int V=SymbolInfoInteger(Symb,SYMBOL_POINT);

errore: 'SymbolInfoInteger' - nessuno degli overload può essere applicato alla chiamata di funzione

Qual è il mio errore?


double V=SymbolInfoDouble(Symb,SYMBOL_POINT);

Point è un valore di tipo double. Quando viene ricevuto come int avrà un valore zero.

 
Vladimir Karputov:

Aiuto diSymbolInfoInteger:

1. Restituisce direttamente il valore della proprietà.

2. Restituisce vero o falso a seconda del successo della funzione. Se ha successo, il valore della proprietà viene messo nella variabile di destinazione passata per riferimento dall'ultimo parametro.


Cioè OR long OR bool.

Capito, grazie)

 
#property copyright "Copyright 2018, Sergey S Morozov"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

//#property indicator_separate_window    // Индик. рисуется в новом окне
#property indicator_chart_window    // Индик. рисуется в основном окне

#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Red     // Цвет первой линии

extern int History  =50;            // Колич.баров в расчётной истории
extern int Aver_Bars=5;             // Количество баров для расчёта

double ArrayBuff[];

//----------------------------------------------------------------------------------------------------

int OnInit()
{
   SetIndexBuffer(0,ArrayBuff);
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
   return(INIT_SUCCEEDED);
}

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[])

  {

      int i,                           // Индекс бара
      n,                               // Формальный параметр
      Counted_bars;                    // Количество просчитанных баров 
      double
      Sum_H,                           // Сумма значений High за переиод
      Sum_L;                           // Сумма значений Low  за переиод
   //--------------------------------------------------------------------
      Counted_bars=IndicatorCounted(); // Количество просчитанных баров
      i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
      if (i>History-1)                 // Если много баров то ..
         i=History-1;                  // ..рассчитывать заданное колич.
      while(i>=0)                      // Цикл по непосчитанным барам
        {
         Sum_H=0;                      // Обнуление в начале цикла
         Sum_L=0;                      // Обнуление в начале цикла
         for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений
           {
            Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
            Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
           }
         ArrayBuff[i]=(Sum_H-Sum_L)/Aver_Bars;  // Знач. 0 буфера на i-ом баре
         i--;                                   // Расчёт индекса следующего бара
        }

   return(rates_total);

  }
//+------------------------------------------------------------------+

Ho appena iniziato, non so ancora scrivere in questa lingua. Ma il problema è - se in una nuova finestra, il grafico appare. Ma non riesco a visualizzarlo in quello attuale... Qual è il mio errore? Considerando che io stesso non potrei scriverlo e non posso trovare esempi qui. Per di più, è chiaro che non è attraverso una funzione come SetChartData(punto1,punto2); succede semplicemente da solo...

E la variabile sembra essere impostata(indicator_chart_window), ma ancora non funziona....

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Как прописать расписание торговли робота? Здравствуйте...
 
Vladimir Karputov:

Assolutamente tutto è disponibile. Descrivere in modo più dettagliato cosa si intende esattamente con "quando cerco di usare le citazioni della cronologia dei minuti"? Cosa stai facendo o vuoi fare esattamente?

Per scaricare le quotazioni della storia caricare MetaTrader 5, cliccare sull'icona con il simbolo del dollaro : "Symbol List Display" (o si può premere Ctrl U). Apparirà la finestra "Simboli". Nella scheda "SPECIFICA" trovare la coppia di valute desiderata, ad esempio GBPCHF. Nella scheda "BARs" impostate le quotazioni dei minuti (M1) e le date di inizio e fine del periodo richiesto. Dopo aver cliccato sul pulsante "RICHIESTA", verrà scaricato un file csv, che può essere utilizzato per testare le strategie con la Metatrader o con i propri programmi.

Usando EXCEL potete visualizzare il contenuto di questo file, dove la prima linea rivela le informazioni del file, cioè "data, ora" e poi" OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL", "VOL", "SPREAD"

So esattamente cosa significano questi dati, ma come fare BIT e ASK da questi dati, che MetaTrader 5 usa?

 
Per favore consigliatemi dove in mt5 potete controllare le informazioni su un simbolo? Ricordo che in mt 4 si poteva controllare nel tester delle strategie, ma nel tester di mt5 non ho trovato questa funzione.