bool CTrade::BuyLimit( 1.0, // объем позиции текущий аск, // цена исполнения NULL, // символ 0.0, // цена Stop Loss 0.0, // цена Take Profit ORDER_TIME_DAY, // тип истечения 0, // время истечения ""// комментарий )
bool CTrade::BuyLimit( 1.0, // объем позиции текущий аск, // цена исполнения NULL, // символ 0.0, // цена Stop Loss 0.0, // цена Take Profit ORDER_TIME_DAY, // тип истечения 0, // время истечения ""// комментарий )
//---Filing mode int filling_mode = int(SymbolInfoInteger(a_symbol, SYMBOL_FILLING_MODE));
if((SYMBOL_FILLING_IOC & filling_mode) != SYMBOL_FILLING_IOC) { MessageBox("Символ " + a_symbol + " не поддерживает filling IOC режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND); return(false); }
if((SYMBOL_FILLING_FOK & filling_mode) != SYMBOL_FILLING_FOK) { MessageBox("Символ " + a_symbol + " не поддерживает filling FOK режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND); return(false); }
これで納得!
非同期の場合、1行だけ書き込まれる
に対応する。
そして、ログブックには他の行はないのだ!これに合わせて
非同期処理では明らかにログは残りません。
しかし、同期処理では、ログに2行が表示されます。
2017.02.17 16:20:47.323 Trades '1007932': order #54042531 sell limit 1.00 / 1.00 RTS-3.17 at 121520 done in 15.978 ms
そのため、同期モードと非同期モードが同じ時間で実行され(論理的にはそうなっている)、ターミナルのログには非同期モードが2倍速いことが報告されています。これは嘘・間違いです!
と結論づけることができます。
非同期モードでは、ログは完全ではなく、誤解を招く恐れがあります。
結論が導き出される。
非同期モードでは、ログが完全でないため、誤解を招く恐れがあります。
はい、しかしそれでは残念ながらレイテンシーの問題は解決できません...。
SDではずいぶん前に書きました。
私も楽観的です :)
ずいぶん前にSRに書きました
申請した内容に対して、非常に迅速に対応してもらっています。おそらく、私の使っている言葉の方が、開発者には理解しやすいのでしょう。
言いたいことがわかりにくいことがあります。
しかし、時々FOKが動作せず、エラー4756を書き込むことがあります。
特に購入はSBを使っています。
1.0, // объем позиции
текущий аск, // цена исполнения
NULL, // символ
0.0, // цена Stop Loss
0.0, // цена Take Profit
ORDER_TIME_DAY, // тип истечения
0, // время истечения
"" // комментарий
)
同僚、この点についてアドバイスをお願いします。私はいつもFORTSでORDER_FILLING_RETURN ポリシーを使っていますが、今、ORDER_FILLING_FOKをテストするタスクがあります。
しかし、時々FOKが動作せず、エラー4756を書き込むことがあります。
特に購入はSBを使っています。
1.0, // объем позиции
текущий аск, // цена исполнения
NULL, // символ
0.0, // цена Stop Loss
0.0, // цена Take Profit
ORDER_TIME_DAY, // тип истечения
0, // время истечения
"" // комментарий
)
4756
取引要求の送信に失敗しました
オーダーフィリングとは関係ない。
SBをトレースしてみると、もしかしたらエラーの発生する場所がわかるかもしれません。
4756
取引要求の送信に失敗しました
オーダーフィリングとは関係ない。
トレースルートSBで、エラーの発生箇所を確認する。
以下は、注文・取引履歴の 抜粋です。
ブローカーがFOK注入をサポートしているかどうかを確認する
int filling_mode = int(SymbolInfoInteger(a_symbol, SYMBOL_FILLING_MODE));
if((SYMBOL_FILLING_IOC & filling_mode) != SYMBOL_FILLING_IOC)
{
MessageBox("Символ " + a_symbol + " не поддерживает filling IOC режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND);
return(false);
}
if((SYMBOL_FILLING_FOK & filling_mode) != SYMBOL_FILLING_FOK)
{
MessageBox("Символ " + a_symbol + " не поддерживает filling FOK режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND);
return(false);
}
追加
また、SB 関数の bool CTrade::FillingCheck(const string symbol)
を参照してください。
以下は、注文・取引履歴の 抜粋です。
リミッターはFOKになり得るか?
フォーラムでは、塗りつぶしタイプの自動選択機能が掲載されていました。