Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1357

 

Domanda dell'amministrazione.

Per favore, aiutatemi a scaricare la versione demo di Osiris.

Quando provo a scaricarlo, non si scarica.

Купите Торговый робот (Expert Advisor) 'Astroloqer' для MetaTrader 4 в магазине MetaTrader Market
Купите Торговый робот (Expert Advisor) 'Astroloqer' для MetaTrader 4 в магазине MetaTrader Market
  • www.mql5.com
Советник Звездочет 1.0 универсал. НЕ мартинит НЕ усредняется И не торгует сетками ордеров. Терминал МТ4. Это вы можете сами проваерить при
 
Oleg Kolesov #:
La questione principale rimane irrisolta. Come colorare il buffer con due colori. >= Blu a <= Rosso.

Non riesco a capire i vostri termini e condizioni.

Esempio. Bordo = 5

Valore == 8, colore blu.

Valore == 1, colore - rosso.

Valore == 5, colore - cosa?

 
Oleg Kolesov #:
Mi prendo una pausa. Grazie.

leggermente modificato il vostro indicatore (ha un Expert Advisor per il tester)

Schermata 2021-10-12 071433

File:
V2.mq5  9 kb
 
SanAlex come si valuta?
 
Oleg Kolesov #:
SanAlex come lo valuti?

ordinario come qualsiasi altra cosa - un esperto, con tutte le rifiniture, farà soldi.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

EUR\USD-H2 Il tuo indicatore a ore 2 è rivolto verso il basso - al momento neutro in attesa che l'interruttore salga o continui a scendere.

EURUSDH2it

 
Perché il comando Print non può essere registrato?
 
Evgeny Dyuka #:
Perché il comando Print non può essere registrato?

La protezione contro ... All'utente è stato impedito di fare la cosa sbagliata. Cliccate con il tasto destro del mouse nel terminale, nella scheda "Esperti" ed eseguite il comando "Visualizza".

 

Salve signori e gentiluomini!

Non tirate il pollice in su per la mia domanda. Capisco che è ingenuo, ma tutti noi siamo "Dio, come eravamo ingenui" (romanticismo).

Ho scritto un Expert Advisor usando l'algoritmo originale. I test dimostrano che è più efficace in modalità scalper. Taccio sui risultati perché tutti conosciamo gli inventori di Perpetuum Mobile e Grails. Non è né l'uno né l'altro e ha un grave svantaggio - dipende dai valori di spread e commissioni e dallo stop loss come tutte le strategie scalper. Ho solo un'impostazione - SL e ha 6-10 pps su 5 segni. Potete illuminarmi su come affrontare la cosa o su quale broker posso fare questi giochi.

 
Salve.
C'è un indicatore. Riassume gli ordini limite nella tazza e lo visualizza come grafico.
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots 2

#property indicator_label1 "Delta buy"
#property indicator_type1 DRAW_HISTOGRAM
#property indicator_color1 clrWhite
#property indicator_width1 3

#property indicator_label2 "Delta sell"
#property indicator_type2 DRAW_HISTOGRAM
#property indicator_color2 clrBlue
#property indicator_width1 3

int iStart;
double iDelta1[];
double iDelta2[];

void OnDeinit(const int reason)
{
  string symbol = Symbol();

  MarketBookRelease(symbol);
}

void OnInit()
{
  string symbol = Symbol();

  SetIndexBuffer(0, iDelta1, INDICATOR_DATA);
  ArraySetAsSeries(iDelta1, true);
  
  SetIndexBuffer(1, iDelta2, INDICATOR_DATA);
  ArraySetAsSeries(iDelta2, true);

  IndicatorSetString(INDICATOR_SHORTNAME, "OrderBook");
  IndicatorSetInteger(INDICATOR_DIGITS, Digits());

  MarketBookAdd(symbol);
}

int OnCalculate(
  const int bars,
  const int counted,
  const datetime& time[],
  const double& open[],
  const double& high[],
  const double& low[],
  const double& close[],
  const long& ticks[],
  const long& volume[],
  const int& spread[]
)
{
  if (iStart == 0)
  {
    iStart = 1;
    ZeroMemory(iDelta1);
    ZeroMemory(iDelta2);
  }
  else if (bars != counted)
  {
    iDelta1[0] = iDelta1[1];
    iDelta2[0] = iDelta2[1];
  }

  string symbol = Symbol();

  double ask = SymbolInfoDouble(symbol, SYMBOL_ASK);
  double bid = SymbolInfoDouble(symbol, SYMBOL_BID);

  MqlBookInfo levels[];

  bool book = MarketBookGet(symbol, levels);

  int indexBuy = 1;
  int indexSell = 1;
  long volumeBuy = 0;
  long volumeSell = 0;


  if (book)
  {
    int size = ArraySize(levels);

    for (int k = 0; k < size; k++)
    {
      if (levels[k].price >= ask) 
      {
        volumeSell += indexSell * levels[k].volume;
        indexSell++;
         
      }
    }

    for (int k = size - 1; k >= 0; k--)
    {
      if (levels[k].price <= bid) 
      {
        volumeBuy += indexBuy * levels[k].volume;
        indexBuy++;
     
      }
    }
  }

 iDelta1[0] = (double) ( - volumeSell);
 iDelta2[0] = (double) (volumeBuy); 
  return bars;
}
E con ogni nuovo cambiamento nella tazza sovrascrive la quantità passata. Come faccio ad accumulare la somma? In altre parole, non sovrascriverebbe i dati della barra corrente, ma li aggiungerebbe? Ho cercato di implementarlo usando il ciclo "while" e di aggiungere dati mentre la barra corrente non si è mossa, ma qualcosa è andato storto. Per favore, non sentitevi in colpa per una domanda così banale.
 

FileOpen restituisce l'errore 5001(Cannot open more than 64 files simultaneously).
Mi sembra di chiudere correttamente ogni volta tramite FileClose(file_handle).

Dove e come viene accumulato il conteggio dei file aperti e come può essere resettato?