初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 93

 
seny:

助けてください、以下はその一例です。

仕組みはこうだ...

でも、こうはいかない...。

k変数経由でバッファに書き込むにはどうすればよいですか?

double k=0;
 
Alekseu Fedotov:
double k=0;

助けにならない!コード本体にも、初期化にも、スタートにも......。

 
seny:

こんな風に動いたり、こんな風に動かなかったり。

理解するためには、単純化することが必要です。2つの式を比較する: 100/10/10 = 1 と k=10/10 100/k = 100 だが、k=10*10 ならば正しい

 
ごあいさつタイムラインオフセットを有効にしたときに、タイムラインを未来に伸ばす方法を教えてください。
 
Andrey Sokolov:
ごあいさつチャートオフセットが有効な場合に、タイムラインを未来に延長する方法を教えていただけませんか?

無理でしょう。縦線は 自分で描くしかない。下の方に時間が表示される。

 

こんにちは。もしオープンオーダーがTakeProfitでクローズしたら、残りのマーケットオーダーを全て削除し、そうでなければ(ストップロスでクローズ)、全く同じオーダー(同じストップロスとテイクプロフィット)を保留オーダーとして置く、というような条件の書き方を教えていただけませんか?

 
6737998:

こんにちは。もし、オープンオーダーがテイクプロフィットでクローズした場合、残りのマーケットオーダーを全て削除し、そうでない場合(ストップロスでクローズ)、全く同じオーダー(ストップロスとテイクプロフィットが同じ)を保留オーダーとして置く、という条件を書く方法を教えてください。


私は別のスレッドであなたに言った - 歴史と仕事をし、あなたがこれを行うために必要な演算子を書いた。

 

あるいは、「記事」のコーナーで、何かFXの現象について記事を書くこともできます。
そして、記事の下部には、この現象を調査するために使用することができる市場からの有料インジケータの広告を配置します。?

 

皆さんこんにちは、問題が発生しました。

課題は、チャート上のEAをインタラクティブに変更することです。複数のチャートと複数のEAを使ったオプションは考えていない。

ChartApplyTemplateを使用する ことは知っており、それは動作しますが、時々、コマンドをキューに入れることができないという理由で、偽の応答(in loop constant response)を返すことがあります。

このキューは何ですか、どこで読めますか、また、私のタスクは他のすべてのタスクより優先されなければならないので、このキューをクリアするにはどうしたらいいですか?

ありがとうございました。

追記:テンプレートを手動で変更した場合は発生しません。その時はwinAPIで試してみてはいかがでしょうか。このソフトを使ったことがないため、調べる必要があります。

ChartApplyTemplate - Chart Operations - MQL4 Reference
ChartApplyTemplate - Chart Operations - MQL4 Reference
  • docs.mql4.com
ChartApplyTemplate - Chart Operations - MQL4 Reference
 
Vasili Taucci:

皆さんこんにちは、問題が発生しました。

課題は、チャート上のEAをインタラクティブに変更することです。複数のチャートと複数のEAを使ったオプションは考えていない。

ChartApplyTemplateを使用する ことは知っており、それは動作しますが、時々、キューにコマンドを置くことができないという理由で、偽の応答を返します。

このキューは何ですか、どこで読めますか、また、私のタスクは他のすべてのタスクより優先されなければならないので、このキューをクリアするにはどうしたらいいですか?

ありがとうございました。

追記:テンプレートを手動で変更した場合は発生しません。その時はwinAPIで試してみてはいかがでしょうか。掘る必要がある、それを使って作業したことがない

これを見て ください。MT5用ですが、MT4でも原理は全く同じです。ChartApplyTemplateを使用する場合、必須の同期が必要ですが、私はチケットで以下のように行っています。

  static bool TemplateApply( const long Chart_ID, const string &Str, const bool Sync = true )
  {
    string TmpStr = Str;

    const bool SyncFlag = (Sync && Chart_ID && (Chart_ID != ::ChartID()) && !::IsStopped());

    if (SyncFlag)
    {
      const color ColorStopLevel = (color)::ChartGetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL);

      if ((bool)(ColorStopLevel >> 24))
        ::ChartSetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL, ColorStopLevel & 0xFFFFFF);

      const int NewColorStopLevel = (int)EXPERT::StringBetween(TmpStr, EXPERT_STOPLEVEL, STRING_END) | (0x01 << 24);

      TmpStr = Str;
      EXPERT::StringReplace(TmpStr, EXPERT_STOPLEVEL, STRING_END, EXPERT_STOPLEVEL + (string)NewColorStopLevel + STRING_END);
    }

    short Data[];
    const bool Res = ::StringToShortArray(TmpStr, Data, 0, ::StringLen(TmpStr)) &&
                     ::FileSave(FILENAME, Data) && ::ChartApplyTemplate((ulong)Chart_ID, FILENAME);

    if (Res && SyncFlag)
    {
      long Value;

      while ((!::IsStopped() && ::ChartGetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL, 0, Value) && (!(bool)((int)Value >> 24))))
        ::Sleep(0);

      ::ChartSetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL, (int)Value & 0xFFFFFF);
    }

    return(Res);
  }
Expert
Expert
  • 投票: 12
  • 2017.08.28
  • fxsaber
  • www.mql5.com
Библиотека чтения/записи параметров произвольных советников.