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

 

そしてここに、ある種の混乱がある...。いくつかのレベルを非表示にして、他のレベルを特定のスタイルにしたいんだ。

だから、デバッグ・スタイルのゼロ・レベルは変わるけど、最初のレベルを隠すとすぐに黄色に戻ってしまう。まあ、デバッグでもそうではない。値の刻まれた部分だけが正しい色になっている。このフィボナッチには困ったものだ......。

   int total_levels=(int)ObjectGetInteger(ChartID(),name,OBJPROP_LEVELS);
   for(int i=0;i<total_levels;i++)
     {
      if(i==0 || i==4 || i==5)
        {
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELCOLOR,i,FiboClr);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELWIDTH,i,FiboWidth);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELSTYLE,i,FiboStyle);
        }
      else
        {
         ObjectSetDouble(ChartID(),name,OBJPROP_LEVELVALUE,i,0);
         ObjectSetString(ChartID(),name,OBJPROP_LEVELTEXT,i,"");
        }
     }
 

こんにちは。

問題を解決する方法を教えてください。

ポジションと注文を処理し、データベースとチェックするクラスがあります。

このクラスから構造体(文字列、double、int、文字列......)を渡す必要があります。

どうすればよいでしょうか?

可能であれば、例へのリンクもお願いします。

 
Sergey Li #:

皆さん、こんにちは。

問題を解決する方法を教えてください。

ポジションと注文を処理し、データベースとチェックするクラスがあります。

このクラスからSTRUCTURES (string, double, int, string ....) を渡す必要があります。

どうすればよいでしょうか?

可能であれば、例へのリンクもお願いします。

標準ライブラリに例があります。

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
  • www.mql5.com
Result(MqlTradeResult&) - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
注文を送信する前に、シンボルの最後のポジションがいつオープンされたかをチェックする必要があります。
 
lynxntech #:
注文を送信する前に、シンボルの最後のポジションがいつオープンされたかをチェックする必要があります。

端末のグローバル変数の方が早いということはありません。1つだけ訂正があります。ターミナルを再起動するときに、ターミナルのグローバル変数を使ってそれを保存し、OnInit()で履歴を調べることができます。しかし、OnTick()に行くとき、この値はグローバルレベルの変数になければなりませんが、端末のグローバル変数にはありません。

 
Alexey Viktorov #:

変数に入れるより速くなることはありえない。ひとつだけ訂正がある。ターミナルを再起動するときに、ターミナルのグローバル変数を使って保存し、OnInit()で履歴を調べることができる。しかし、OnTick()に行くとき、この値はグローバルレベルの変数になければならないが、端末のグローバル変数にはない。

Terminalのグローバル変数は、通常のものと同じメモリに格納されているはずなので、必要なときにディスクから要求される情報量はそれほど多くないのに、そんなに遅いのだろうか。

 
lynxntech #:

グローバル変数は、通常の変数と同じメモリに格納されているはずなので、必要なときにディスクから要求される情報量はそれほど多くはない。

大雑把に言えば、端末のグローバル変数はほとんどファイルのようなものだ。そうでなければ、コンピュータの電源を切ったときにどこに保存されるのだろうか?そして、プログラムのどこからでもアクセスできるグローバルレベルの変数は、メモリ上の変数である。当然、その方が速い。

新規オープン時には、グローバルレベル変数と端末のグローバル変数の両方に書き込んだ方が、端末再起動後に復元できることがわかった。しかし、ターミナルの実行中は、グローバルレベル変数をチェックする必要がある。

 
Alexey Viktorov #:

大雑把に言えば、グローバルターミナル変数はほとんどファイルのようなものだ。そうでなければ、コンピュータの電源を切ったときにどこに保存されるのだろうか?そして、プログラムのどこからでもアクセスできるグローバルレベルの変数は、メモリ上の変数である。当然、その方が速い。

新規オープン時には、グローバルレベル変数と端末のグローバル変数の両方に書き込んだ方が、端末再起動後に復元できることがわかった。しかし、ターミナルの実行中は、グローバルレベル変数をチェックする必要がある。

つまり、OnDeinitで履歴をチェックし、ターミナルのグローバル変数に書き込む?

理想を言えば、テキスト形式の情報は数バイトしかないのだから、通常の変数、つまりRAMに格納されているのでは?

OnInitでそれを読み取り、RAMに書き込み、変数が更新されると上書きされます。

あるいは開発者が教えてくれるかもしれない。

 
lynxntech #:

つまり、OnDeinitで履歴をチェックし、グローバル・ターミナルに書き込む?

理想的には、テキスト形式で数バイト分の情報しかないのですが、通常の変数として、つまりRAMに含まれていないのでしょうか?

OnInitで読み込んでRAMに書き込み、変数が更新されると上書きされます。

あるいは開発者が教えてくれるかもしれません。

誰がOnDeinit()で履歴をピックすると言ったのですか?

私が言っていたのは、次のポジションを開くときに 変数をターミナル変数に複製する必要性についてです。

 
Alexey Viktorov #:

誰がOnDeinit()でヒストリーを選ぶと言った?

私が言っていたのは、次に開く位置で 終端変数に変数を複製する必要性についてです...。

この質問は、実際の作業を測定した人たちや、開発者たちにしたもので、彼らが何を計画しているのか知っている人のほうがいい。

私は実験をしたくない。

理由: