初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1357

 

事務局からの質問

オシリスの体験版ダウンロードに協力してください。

ダウンロードしようとすると、ダウンロードできない。

Купите Торговый робот (Expert Advisor) 'Astroloqer' для MetaTrader 4 в магазине MetaTrader Market
Купите Торговый робот (Expert Advisor) 'Astroloqer' для MetaTrader 4 в магазине MetaTrader Market
  • www.mql5.com
Советник Звездочет 1.0 универсал. НЕ мартинит НЕ усредняется И не торгует сетками ордеров. Терминал МТ4. Это вы можете сами проваерить при
 
Oleg Kolesov #:
本題は未解決のままです。2色でバッファを着色する方法。>= 青から <= 赤へ。

規約がよくわからないのですが。

例ボーダー=5

Value == 8, 色は青。

値==1、色==赤。

値==5, 色 - 何?

 
Oleg Kolesov #:
ちょっと休憩。ありがとうございます。

インジケータを少し修正(テスター用のExpert Advisorを搭載しています)。

スクリーンショット 2021-10-12 071433

ファイル:
V2.mq5  9 kb
 
SanAlex 評価はいかがですか?
 
Oleg Kolesov #:
SanAlex 評価はいかがですか?

専門家であれば、何でもありで、儲かるのです。

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

EURUSD-H2 2時位置のインジケータが下向きに立っている - 現時点で中立の立場で、上に切り替えるか、下に移動し続けるかを待っている。

EURUSDH2it

 
Print コマンドがログに残らないのはなぜですか?
 
Evgeny Dyuka #:
Print コマンドがログに残らないのはなぜですか?

からの保護は ...ユーザーの行動が正しくない。ターミナル内の「エキスパート」タブで右クリックし、「表示」コマンドを実行します。

 

紳士淑女の皆様、こんにちは。

私の質問に親指を立てるのはやめてください。世間知らずなのはわかりますが、みんな「神様、私たちはなんて世間知らずだったんだろう」(ロマン)です。

オリジナルのアルゴリズムを使ってExpert Advisorを書きました。テストでは、スキャルパーモードで最も効果的であることが示されています。Perpetuum MobileとGrailsの発明者は皆知っているので、結果については黙っているつもりです。他のスキャルパー戦略同様、スプレッドや手数料、ストップロスに左右されるのです。私はSLという1つの設定しかしていませんが、5つの看板で6~10ppsになっています。どのように対処すればよいか、どのブローカーとこのようなゲームをすることができるか、ご教示ください。

 
こんにちは。
インジケータがあります。カップ内の指値注文を集計し、これをチャートとして表示します。
#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;
}
そして、スタックに新しい変化が起こるたびに、過去の分を上書きしていくのです。どうすれば和を溜めることができるのか?つまり、現在のバーのデータを上書きするのではなく、追加するのでしょうか?whileループを使って、現在のバーが動いていない間にデータを追加するように実装しようとしたのですが、何かうまくいきません。こんな些細な質問で恐縮ですが、よろしくお願いします。
 

FileOpenはエラー5001(Cannot more than 64 files simultaneously)を返します。
FileClose(file_handle)で毎回正しく終了しているようです。

オープンファイルのカウントはどこでどのように蓄積され、どのようにリセットされるのですか?

理由: