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

 
Alexey Viktorov:

Quindi limitati al centro. Chi lo proibisce?

Se non è maschio, allora apparentemente la sindrome di PMS vieta di leggere e fare domande adeguate, finora solo strillando mi ha lasciato... Voglio davvero che sia così e non così...

ZS: Sono su 4 forum, se possibile, faccio circa 20 lavori MT4 gratuiti al mese, e circa 10 ordini per TK individuali, ma regolarmente ogni 1,5-2 mesi appare un personaggio da favola che mi fa impazzire perché non ha bisogno di capire MT4 o fare un compito specifico sotto l'ordine ... Ha solo bisogno di far girare la testa a qualcuno, è il suo lavoro...

Darei ad Artem un monumento durante la sua vita per la sua pazienza nel trattare con tali personaggi in un tempo così lungo.

 
Alexey Viktorov:

È molto facile da fare.

L'opzione 1 è usare il cervello.

Se non puoi farlo, puoi usare l'opzione 2.

Senza fare storie e senza insultare gli sviluppatori e gli utenti del forum in particolare, chiedete aiuto sul forum.

Altrimenti sarete inviati al sito . posta.

So come aggirare questa "caratteristica".

A differenza delle "persone rispettabili" di questo forum non ne farò un segreto.

Questo modo si presenta così:

Se si riempie il resto della matrice che non ci interessa con il valore massimo, allora gli indicatori smettono di disegnare linee.

Questa è esattamente la soluzione "idiota" di questo problema che vediamo negli indicatori standard di MT4 (per esempio, SMA, EMA, SMMA e altri).

Ma, dovete essere d'accordo, questa è una completa idiozia. E sospetto che proprio a causa di questa idiozia non c'è una sola parola su questo modo di "risolvere" il problema nella descrizione.

Forse mi sbaglio, ma non ho trovato nessun altro modo negli indicatori standard.

 
Alexey Viktorov:

Esattamente così. Si apre un nuovo conto e si trasferisce il denaro dal vecchio conto al nuovo conto con un trasferimento interno senza alcun costo.

Non lo capisco affatto. Alexey, come fai a sapere di cosa stai parlando? Cosa ha a che fare con 8 buffer di indicatori che qualche traduttore non può tradurre? Non so...
 
Igor Makanu:

Se non è maschio, allora apparentemente la sindrome di PMS vieta di leggere e fare domande adeguate, finora solo strillando mi ha lasciato... Voglio davvero che sia così e non così...

ZS: Sono su 4 forum, se possibile, faccio circa 20 lavori MT4 gratuiti al mese, e circa 10 ordini per TK individuali, ma regolarmente ogni 1,5-2 mesi appare un personaggio da favola che mi fa impazzire perché non ha bisogno di capire MT4 o fare un compito specifico sotto l'ordine ... Ha solo bisogno di far girare la testa a qualcuno, è il suo lavoro...

Darei ad Artem un monumento durante la sua vita per la sua pazienza nel trattare con tali personaggi in un tempo così lungo.

Probabilmente hai bisogno di riposo.

 
Bisogna fare i bambini in modo sobrio, in modo che non ci siano problemi in futuro.
 

Cosa sto facendo di sbagliato?

//+------------------------------------------------------------------+
//|                                                      CCI_DIV.mq5 |
//|                                                        RomanRott |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "RomanRott"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot HL_CCI
#property indicator_label1  "HL_CCI"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- input parameters
input int      Period_=70; //Период
//--- indicator buffers
double         HL_CCIBuffer[];
int cci_h1, cci_h2;
double cci1[], cci2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,HL_CCIBuffer,INDICATOR_DATA);
   cci_h1 = iCCI(_Symbol, PERIOD_CURRENT, Period_, PRICE_HIGH);
   cci_h2 = iCCI(_Symbol, PERIOD_CURRENT, Period_, PRICE_LOW);
   
   //ArraySetAsSeries(cci1, true);
   //ArraySetAsSeries(cci2, true);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
   CopyBuffer(cci_h1, 0, 0, rates_total-prev_calculated, cci1);
   CopyBuffer(cci_h2, 0, 0, rates_total-prev_calculated, cci2);
   for(int i = prev_calculated; i<rates_total;i++){
      HL_CCIBuffer[i] = cci1[i]-cci2[i];
   }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:
Non capisco assolutamente nulla. Alexei, come fai a sapere di cosa stiamo parlando? Cosa ha a che fare con 8 buffer di indicatori che qualche traduttore non riesce a tradurre? È difficile da capire...

Artyom, sei un programmatore... M. Botvinnik una volta disse che un computer è un idiota. Quindi, ogni programmatore sa come parlare a un idiota.

Ho già letto di 8 o 512 buffer prima, e questo testo riguardava la lamentela sul rifiuto del broker di migrare il conto da MT4 a MT5.


Igor Makanu:

Darei un monumento ad Artem in vita per la sua pazienza nel trattare con tali personaggi.

Ho già...


 
Roman Sharanov:

Cosa sto facendo di sbagliato?

//+------------------------------------------------------------------+
//|                                                      CCI_DIV.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot DivCCI
#property indicator_label1  "DivCCI"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  C'143,188,139'
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
//--- input parameters
input uint     InpPeriod=70;   // CCI period
//--- indicator buffers
double         BufferDivCCI[];
double         BufferHCCI[];
double         BufferLCCI[];
//--- global variables
int            period_cci;
int            handle_hcci;
int            handle_lcci;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- set global variables
   period_cci=int(InpPeriod<2 ? 2 : InpPeriod);
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferDivCCI,INDICATOR_DATA);
   SetIndexBuffer(1,BufferHCCI,INDICATOR_CALCULATIONS);
   SetIndexBuffer(2,BufferLCCI,INDICATOR_CALCULATIONS);
//--- setting indicator parameters
   IndicatorSetString(INDICATOR_SHORTNAME,"HL CCI ("+(string)period_cci+")");
   IndicatorSetInteger(INDICATOR_DIGITS,Digits());
//--- setting buffer arrays as timeseries
   ArraySetAsSeries(BufferDivCCI,true);
   ArraySetAsSeries(BufferHCCI,true);
   ArraySetAsSeries(BufferLCCI,true);
//--- create CCI's handles
   ResetLastError();
   handle_hcci=iCCI(NULL,PERIOD_CURRENT,period_cci,PRICE_HIGH);
   if(handle_hcci==INVALID_HANDLE)
     {
      Print("The iCCI(",(string)period_cci,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   handle_lcci=iCCI(NULL,PERIOD_CURRENT,period_cci,PRICE_LOW);
   if(handle_lcci==INVALID_HANDLE)
     {
      Print("The iCCI(",(string)period_cci,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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(rates_total<fmax(period_cci,4)) return 0;
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-1;
      ArrayInitialize(BufferDivCCI,EMPTY_VALUE);
      ArrayInitialize(BufferHCCI,0);
      ArrayInitialize(BufferLCCI,0);
     }
//--- Подготовка данных
   int count=(limit>1 ? rates_total : 1),copied=0;
   copied=CopyBuffer(handle_hcci,0,0,count,BufferHCCI);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_lcci,0,0,count,BufferLCCI);
   if(copied!=count) return 0;

//--- Расчёт индикатора
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      BufferDivCCI[i]=BufferHCCI[i]-BufferLCCI[i];
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

consigliare cosa dovrebbe essere aggiunto alla corte in modo che l'indicatore lavori ogni secondo invece che ogni tick?

#proprietà indicator_chart_window

#proprietà indicator_buffers 1

#property indicator_color1 Red

#proprietà rigorosa

doppio buffer[];

void init()

{

SetIndexBuffer(0,buffer);

SetIndexStyle(0,STYLE_SOLID);

}

void start ()

{


double vbid_1 = MarketInfo("USDRUB",MODE_BID);

double vbid_2 = MarketInfo("EURUSD",MODE_BID);




doppio a = vbid_1;

doppio b = vbid_2;

doppio x = a / b ;

buffer[0] = x;

Commento (x);

}


 
gonsharov:

Cosa devo aggiungere al campo per far funzionare l'indicatore ogni secondo invece che ogni tick?

Devi leggerehttps://docs.mql4.com/ru/basis/function/events

e scrivete il vostro gestore di eventiOnTimer()

Функции обработки событий - Функции - Основы языка - Справочник MQL4
Функции обработки событий - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
В языке MQL4 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL4: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
Motivazione: