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

 
コンパイルエラー
template<typename T>
class A { public:
    A( const T * ) {} //Error: 'T' - unexpected token
};
class B {};
void OnStart()
{
    A<const B> a( new B );
}
 

こんにちは、私はOtkritieのデモ口座で次のような現象が起きています。

注文の変更と削除に成功すると、次のような現象が発生します。

ORDER_FILLING_RETURN(通常の指値注文)の場合

MqlTradeResult構造 体からの可変量が、最初の注文サイズと安定的に等しい場合(この場合、注文は全く実行されていない)。

実行済みボリューム(私の場合は0)を出すべきと思われますが、私の勘違いでしょうか?

 
Sergey Kudryavtsev:

私はそれが実行されたボリューム(私の場合、0)を与えるべきだと思うのですが、間違っていますか?

これは、もともと

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

ライブラリ:MT4Orders

fxsaber さん 2017.02.10 12:01

スクリプトの実行結果
OrderSend(NULL,OP_BUYLIMIT,1,Ask-100*Point,100,0,0,My Order)
Request.action = TRADE_ACTION_PENDING (5)
Request.magic = 0
Request.order = 0
Request.symbol = EURUSD
Request.volume = 1.0
Request.price = 1.06356
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_IOC (1)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = My Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 57777
Result.volume = 1.0
Result.price = 1.06356
Result.bid = 0.0
Result.ask = 0.0
Result.comment = My Order
Result.request_id = 592
Result.retcode_external = 0
これで、MT5で関連する取引 要求を正しく形成する方法を簡単に理解することができます。
 
fxsaber:
最初からこうだったんだ!
ありがとうございました。
 
MqlTradeResult」で検索しても、ヘルプの記述にリンクが張れない。
 

OrderSend実行中は、デバッグモードの終了やEA/スクリプトの削除 はできません。

時々、OrderSendが180秒間実行され、Requestタイムアウトが発生する。スクリプトがデバッグモードで実行されていた場合、エディターでコンパイルできるようになるまで3分待たなければなりません。

 

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

バグ、バグ、質問

fxsaber さん 2017.02.16 07:55

2017.02.16 08:53:03.158 Network '2250': disconnected from FXOpen-MT5
2017.02.16 08:53:03.285 MQL5    wrong type, loading of Test failed
2017.02.16 08:53:03.813 Network '5122740': authorized on MetaQuotes-Demo through Access Point EU Amsterdam (ping: 50.93 ms)

何ですか?

唯一のチャートで何も動いていない。アカウントを切り替えると、いつもこのメッセージが表示されます。

Test.ex*ファイルをすべて削除しました。メッセージが表示され続ける
 

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

テストエージェントのクレイジーキャッシュ

レナート・ファットフーリン さん 2017.02.21 04:04

MT5 1545の新しい金曜日ビルドを試してみてください - 何かが改善されています。

また、MetaQuotes-Demo MT5には23万以上の永久にアクティブな口座があり、本当の取引のバッカスであることに注意してください。

バッカンは交換でさらにパワーアップしていると思いますが、対処は。

1545 - 良くなっているようです。しかし、すべてはその隙間に入り込んでしまう。

リクエスト/レスポンス

Request.action = TRADE_ACTION_DEAL (1)
Request.magic = 0
Request.order = 0
Request.symbol = EURCAD
Request.volume = 0.01
Request.price = 1.39016
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_SELL (1)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment =
Request.position = 134821044
Request.position_by = 0
Result.retcode = 10009
Result.deal = 118450870
Result.order = 134821045
Result.volume = 0.01
Result.price = 1.39016
Result.bid = 1.39016
Result.ask = 1.39043
Result.comment = Request executed 57.225 + 18.108 ms
Result.request_id = 4096
Result.retcode_external = 0

ハイライト - OrderSendが成功した後、注文と取引履歴に表示される時間です。たくさん!

ログ

NO      0       08:51:22.422    Trades  '5245006': instant sell 0.01 EURCAD at 1.39016, close #134821044 buy 0.01 EURCAD 1.39043 (deviation: 100)
MM      0       08:51:22.480    Trades  '5245006': accepted instant sell 0.01 EURCAD at 1.39016, close #134821044 buy 0.01 EURCAD 1.39043 (deviation: 100)
LH      0       08:51:22.480    Trades  '5245006': deal #118450870 sell 0.01 EURCAD at 1.39016 done (based on order #134821045)
EQ      0       08:51:22.480    Trades  '5245006': order #134821045 sell 0.01 / 0.01 EURCAD at 1.39016 done in 57.165 ms

そしてもうひとつ、同じスクリプトが 実行されるケース。

リクエスト/レスポンス

Request.action = TRADE_ACTION_PENDING (5)
Request.magic = 0
Request.order = 0
Request.symbol = EURCZK
Request.volume = 0.01
Request.price = 27.043
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = Benchmark_Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 134821281
Result.volume = 0.01
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Request executed 392.585 + 0.299 ms
Result.request_id = 4457
Result.retcode_external = 0

ログ

HP      0       08:51:43.740    Trades  '5245006': buy limit 0.01 EURCZK at 27.04300
RE      0       08:51:44.133    Trades  '5245006': accepted buy limit 0.01 EURCZK at 27.04300
JS      0       08:51:44.133    Trades  '5245006': order #134821281 buy limit 0.01 / 0.01 EURCZK at market done in 392.533 ms

Ping ~54ms.

 

アラートウィンドウから何かをコピーすることは不可能です。

アラートウィンドウで、右クリックメニュー「コピー」と「ジャーナルへ移動」で複数の行を選択し、アラートに対応する行をエキスパートログに表示する機能を追加してください。

 

こんにちは。

オブジェクトポインタの間違った(と私が思う)動作に直面したことがあります。MT5とMT4の両方に関係します。バグなのか機能なのか、はっきりさせてください。以下はそのコードです。

class CBaseObject { };

class CDescObject:public CBaseObject { };

void OnStart()
  {
      CDescObject *obj1 = new CDescObject(), *obj2;
      CBaseObject *baseObj1 = obj1;
      
      obj2 = baseObj1;//Пока не грохнули объект - no problem
      delete(obj1);

      //Если добавить эти строки, ошибки в последней строке не будет
      //if(CheckPointer(baseObj1)==POINTER_INVALID)
         //baseObj1 = NULL;
      
      obj2 = obj1;//Указатели одного типа - no problem
      obj2 = baseObj1;//здесь ошибка "Invalid pointer access"
  }

ここでのポインタは、C言語とは異なり、豊かな内部世界を持っていると理解しています。それでも、最後の行の課題は平和的に過ぎていった方が論理的だ。私の場合、POINTER_INVALIDの チェックが代入後だったので、誰もアクセスしてないのに「ポインタへのアクセスが無効です」が発生する理由がすぐには分かりませんでした。

P.S.: 念のため - Metatrader 5 build 1545, Win 7 SP1 x86。