Функция PositionSelect() копирует данные о позиции в программное окружение, и последующие вызовы PositionGetDouble(), PositionGetInteger() и PositionGetString()
возвращают ранее скопированные данные. Это означает, что самой позиции может уже и не быть (или же она изменилась по объему, направлению и т.д.),
а данные этой позиции можно еще получать. Для гарантированного получения свежих данных о позиции рекомендуется вызывать функцию PositionSelect()
непосредственно перед обращением за ними.
あらかじめPositionSelectを行わずにPositionGetで。
マイケル、またディレイを使った「シート」を作ろうよ、つまらなくなっちゃうよ。:))))
オープニングには、いつ行くのですか?:)))))))
PositionSelectは毎ティックごとに呼び出され、ブロック3の最後の情報出力の前にも呼び出されますから、これも動作します。だから、その理由は明らかにこのケースにはない。
時々、私は間違っているが、これは明らかにこの中で)
PositionSelect が呼び出さ れた時点の位置データの値。
OrderSend 以降は値が更新されない。
PositionSelect(...)==falseの場合、PositionGetの意味がない。
したがって、OrderSendの後、すぐに位置データを取得することはできません...非同期は悪です。
時々、私は間違っているが、これは明らかにこの中で)
PositionSelect が呼び出さ れた時点の位置データの値。
OrderSend 以降は値が更新されない。
PositionSelect(...)==falseの場合、PositionGetの意味がない。
したがって、OrderSendの後、すぐに位置データを取得することはできません...非同期は悪なのです。
私は、間違いを恥じることなく、喜んで認めます。しかし、見てください。ブロック3に入る前に、ハンドラOnTick()の一番最初に、あなたが言ったPositionSelect()が呼ばれ、OrderSend()は実行されていません。このコードでは、ブロック1、2、3の実行の間に1000ティックの遅延カウンターを意図的に追加しています - 非同期についてですが、テスターではこれで位置を固定するには十分すぎるほどだと思います。さらに、ブロック3の条件も変更しました。
結果は変わらず、ポジションを閉じる注文が実行されましたが、ポジションサイズは1のままです。
:-(
がコンパイルできない...位置選択(_Symbol)
がコンパイルできない...位置選択(_Symbol)
がコンパイルできない...位置選択(_Symbol)
記号を修正しました。
結論から言うと、あなたの言うとおりでした。これでブロック3は動作しませんが、これはポジションが選択されていないことを意味します。対談ありがとうございました:-)
スプーンは見つかったが、残滓は残っている。ポジションがなくなると、どうしてポジションのボリュームが 1になるのですか?
というのは、ドキュメントにそぐわない。
では、PositionSelect()の結果がFalseのときに 呼び出しても、位置情報は更新されないのでしょうか?残念!
では、PositionSelect()の結果がFalseのときに 呼び出しても、位置情報は更新されないのでしょうか?残念!
もう10ヶ月になるんですね...。