PositionClose
...
Примечание
Успешное окончание работы метода PositionClose(...)
не всегда означает успешное совершение торговой операции.
Необходимо проверять результат выполнения торгового запроса
(код возврата торгового сервера) вызовом метода ResultRetcode().
追加質問:double <-> long を渡すときに情報を保存するエレガントな方法はありますか?
オール64。実際、そうなんです。符号付き、符号無しの型に固執しないこと。
一番いいのは、自分の目で確かめることです。そうすれば、この疑問は一挙に解決する。
はい、すでに書きましたが、型変換のことは忘れていました。
で、すべてチェック済みです。サインは失われていない。すべて順調だ。
単純な構造をコピーするhttps://www.mql5.com/ru/docs/basis/types/casting#casting_structure
CTradeクラスのPositionCloseを 確認します。
きっと、あなたと同じようになるはずです。唯一の結論は、他に方法がないことです。
しかし、私はあなたの要望を支持します。開発者の方々には、このバリエーションを検討していただきたいと思います。
TRADE_ACTION_CLOSEの 操作タイプを追加- 指定されたシンボルのポジションを現在の 価格でその出来高で決済します。
それは理想的ですね。賛成
他のフォーラムのために、もう一度簡単に問題の概要を説明します。
MQL5の既存の取引/注文の会計システムと決済方法では、マーケットから決済されたSL/TPポジションが実際には決済されず、反対のポジションがオープンされる確率が常にゼロではありません。
相場がSL/TPポジションに近いほど、この確率は高くなり、SL/TPをクローズしての成行注文は不可能となります(SL/TPクローズは、新しい成行注文のクローズ送信中に発生し得るためです)
既存のソリューションでは満足できない
a) 注文がクローズされる前にSL/TPを削除するには時間がかかり、接続障害が発生した場合、ストップなしでポジションがマーケットに残ってしまうなど。
b) SL/TPのトリガーを待つというのも、早めに抜ける必要があるかもしれないので、選択肢には入らない。
新会計制度の導入で一定の制約があるのは理解できますが、コンセプトのために製品の利便性が完全に犠牲になると、大衆は興味を示さないでしょう :(
親愛なる開発者の皆さん、市場から確実に撤退するために何を使うべきかアドバイスしてください(価格は重要ではありません)?MQL4でクローズをリクエストすると、確実にポジションがクローズされるか、Expert Advisorがエラーコードを取得してトライを継続することができます。
完了!暗号の中で、14行目をL.l = 4548887299649496524に置き換えます。
スコア! ;)
公正な警告
***
手動でポジションを閉じる 際にはそのような警告は出ませんでしたが、カウンターを閉じる際にTradingで ...
決済が保証されるポジションの場合、ボラティリティによってスリッページが大きくなるのでしょうか?それとも何?そんな「ピップトレーダーによろしく」なのでしょうか?
開発者への問いかけを 支持します。
サイレント、そこはスリッページやリターンコードチェックの問題ではありません。
問題は、ポジションを閉じる ために、新しいポジションを開く要求を明示的に送る必要があることです。ただし、逆方向の場合です。
トレードサーバーはこのリクエストを、まさに新規ポジションの開設と見なします。実際に既存のポジションを決済したいことを理解するように訓練されていないのです。
ネッティングの観点からはある意味正しいのですが、それでは市場からSL/TPで確実にポジションをクローズすることは不可能です。このSL/TPがいくら離れていても、新規注文(決済)を準備している間に、価格がSL/TPを捉えて勝手にポジションが決済されるとは限りません。そして、私たちの新しい秩序がうまく機能して、反対のポジションを開くことになるのです。
私は、sergeevが提案したように、「TRADE_ACTION_CLOSE」操作タイプの新しいチェックボックスを実装することによって、新しいポジションを開く要求と既存のポジションを閉じる要求を区別することをサーバーに教える唯一の方法であると信じています。
でも、もしかしたら開発者独自のバリエーションがあるのかも?
誰も解決策を持っていないのでしょうか?
解決策はあるのですが、自分に合わない。例えば、アルゴリズムに従ってSL/TPを外すなど...ご自身でも「ネッティングの 観点からは正しいように思えるが、それでは市場から確実にポジションを閉じることはできない...」と述べておられますね。
そうですね、SL/TPを外すのは時間の無駄に加えて、接続トラブル時にストップなしで市場に取り残されるリスクもありますね。
しかし、DCで働く多くのユーザーの利便性を考慮し、「TRADE_ACTION_CLOSE」を追加することは可能だと思います。[例えば、ネットが重要なこのような操作を無効にすることは?(FORTS、RTS)]。
ユーザーへの歩み寄りなくして、多くの証券会社の顧客がMT5に乗り換える意味はない。プログラミングの経験がある私でも、MQL4からMQL5へEAを移植する際には、いくつかの困難に直面しました。しかし、このSL/TPの問題と市場からの閉鎖を除いては、すべて何らかの方法で解決されました。
開発者が私より知っていることを教えるつもりはありませんが、ユーザーフレンドリーを犠牲にして取引所や証券会社のユニバーサル製品を追い求めることは、製品の需要を低下させ、多くの人がMT4に留まることになることを述べておきたいと思います :(