エラー、バグ、質問 - ページ 1832

 
Vladislav Andruschenko:


mt5で?

ええ、ちょっとね。

mt5では長い間externは使っていません。


オッケーです。では、取引パネルを開かずに、取引パネルから入力パラメータの値を変更するにはどうすればよいのでしょうか。結局、表示されているということは、変更できないということなのです。
 
Alexander Fedosov:

オッケーです。では、取引パネルを開かずに、取引パネルから入力パラメータの値を変更するにはどうすればよいのでしょうか。結局、表示されているということは、変更できないということなのです。

正直なところ、わかりません。


しかし、externsは入力パラメータに表示されません。これはずっと前からですか? mt5ターミナルの最初からと言えます。

 
Vladislav Andruschenko:

正直なところ、わかりません。


が、入力パラメータにexternsが表示されないのですが、これはmt5の初期からそうだったのでしょうか?


私は1550年以前のコンパイルされたバージョンを持っているので、まあ、それは、おそらくSDの時間だと、そこにexternのようなパネルの変更の変数を通じて、入力パラメータに表示されます。
 
Alexander Fedosov:

まあ、それは私が1550年前にコンパイルされたバージョンを持っているので、どうやらSDで、時間でなければならず、そこにexternのようなパネルの変更の変数を通じて、入力パラメータに表示されます。

2012年以降、externがinputに置き換わったと理解し、実際にすべてをinputに変更しました。
 

こんにちは、私は2つのターミナルmt5 Alpariとmt5ブローカーOtkritieを持っています。\

Otkritieの12個のツール+インジケータをインストールしています。 CPU負荷5-10%です。

Alpariで同じインジケータを持つウィンドウが3つ開いている CPU負荷が25-30%で、コンピューターの動作が非常に遅い

いずれも歴史的な設定に5000本の小節がある
すべてのチャートを閉じ、マーケット・シンボル・ウィンドウを閉じても、Alpariのロードは14%です。

もっと多くのシンボルを開きたいのですが、このロードの不具合で開くことができません。

ウィンドウ最小化時のCPU負荷は8-9%。

チャートのレンダリングに不具合があるのでは?しかし、それならなぜディスカバー・ブローカーにはそのような問題がないのだろうか。


 
Alexander Fedosov:

私は1550年前にバージョンでコンパイルされ、そこにextern型のパネル変更変数を介して、入力パラメータに表示されているので、まあ、それは、明らかにSDで、時間です。


は元々このようなデータのために書かれたもので、なぜ入力パラメータとして動作させていたのかが不明です。

外部変数

externキーワードは 変数の識別子をグローバルな寿命を持つ静的メモリクラスの識別子として宣言 するために使用されます。 このような変数は、プログラム実行開始時に存在し、プログラム実行開始直後に割り当てられ初期化されます。

複数のソースファイルからなるプログラムを作成することも可能で、その場合は#includeプリプロセッサーディレクティブが使用されます。externとして宣言された変数は、同じプロジェクトの異なるソースファイルに同じ型と識別子を持つものが存在することができます。

プロジェクト全体がコンパイルされると、同じ型と識別子を持つすべてのextern変数は、グローバル変数のメモリプールの同じ領域に関連付けられます。Extern変数は、ソースファイルを個別にコンパイル する際に便利です。Extern変数は一度だけ初期化できます。同じ型、同じ識別子で複数の初期化されたExtern変数が存在することは許されません。

 
何ですか?
2017.03.14 09:51:34.866 Trades  use Hosting Service to speed up the execution - 0.31 ms via 'MQL5 Amsterdam 2 (MQL5 Ltd.)' instead of 72.36 ms
 
fxsaber:
これは何でしょう?
広告:)
 

1554のリクエスト状態には、今まで気づきませんでした。

興味深いのは、要求された状態の前でも、マージンデータが完全に利用できることです。

 

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

mql5言語の特徴、微妙なニュアンスとコツ

fxsaber, 2017.03.14 08:38

  • MT4/5では、保留中の注文がマジック、コメント、ボリュームを変更することは不可能です。
取引サーバーFXOpen-MT5、スクリプトを起動します。
void OnStart()
{
  MqlTradeRequest Request = {0};
  
  Request.action = TRADE_ACTION_PENDING;
  Request.symbol = _Symbol;
  Request.volume = 1;
  Request.price = SymbolInfoDouble(Request.symbol, SYMBOL_ASK) - 100 * _Point;
  Request.type = ORDER_TYPE_BUY_LIMIT;
  Request.type_filling = ORDER_FILLING_IOC;
  Request.comment = "FirstComment";
  
  MqlTradeResult Result;
  
  if (OrderSend(Request, Result))
  {        
    Request.action = TRADE_ACTION_MODIFY;
    Request.order = Result.order;
    Request.type_time = ORDER_TIME_SPECIFIED;
    Request.expiration = TimeCurrent() + 1000;
    Request.comment = "NewComment";    

    OrderSend(Request, Result);  
  }
}

これは、保留中の注文を置き、新しいRequest.commentフィールドを設定することによってそれを変更します。

スクリプト実行ログ

2017.03.14 11:33:47.642 Trades  '10127': buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:33:47.775 Trades  '10127': accepted buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:33:47.777 Trades  '10127': buy limit 1.00 EURUSD at 1.06314 placed for execution
2017.03.14 11:33:47.797 Trades  '10127': order #61938 buy limit 1.00 / 1.00 EURUSD at 1.06314 done in 154.608 ms (FirstComment)
2017.03.14 11:33:47.797 Trades  '10127': modify order #61938 buy limit 1.00 EURUSD at 1.06314 sl: 0.00000 tp: 0.00000 -> 1.06314, sl: 0.00000 tp: 0.00000
2017.03.14 11:33:47.930 Trades  '10127': accepted modify order #61938 buy limit 1.00 EURUSD at 1.06314 sl: 0.00000 tp: 0.00000 -> 1.06314, sl: 0.00000 tp: 0.00000
2017.03.14 11:33:47.930 Trades  '10127': modify order #61938 buy limit 1.00 EURUSD at 1.06314 sl: 0.00000 tp: 0.00000 -> 1.06314, sl: 0.00000 tp: 0.00000 placed for execution
2017.03.14 11:33:47.950 Trades  '10127': modify #61938 buy limit 1.00 EURUSD -> price: 1.06314, sl: 0.00000, tp: 0.00000) done in 154.566 ms (NewComment)

ターミナルショー

ここで、保留中の注文を手動で 削除し、適切な仕訳を取得します。

2017.03.14 11:35:01.198 Trades  '10127': cancel order #61938 buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:35:01.330 Trades  '10127': accepted cancel order #61938 buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:35:01.333 Trades  '10127': cancel order #61938 buy limit 1.00 EURUSD at 1.06314 placed for execution
2017.03.14 11:35:01.465 Trades  '10127': cancel #61938 buy limit 1.00 EURUSD at 1.06314 done in 268.415 ms (NewComment)

ターミナルショー




すなわち、保留中の注文のコメントが実際に変更された。しかし、端末ではログと履歴にしか表示できなかった - BAG!