2013RefreshRates()今回の記事は自分の備忘録としての意味もあります。メタトレーダーで新規成行注文を出すときには、約定価格をAskまたはBidに指定するのが一般的です。AskとBidはスタート関数呼び出し時に代入されるため、OrderSend()関数実行までの間にタイムラグがあると現在価格とずれてしまい、発注エラーになってしまうことがあります。これを防ぐための有効手段としては、1MarketInfo()関数によって現在価格を取得する2RefreshRates()関数によってAskとBidの値を更新するあたりがあります。念のために2について、今回ちょっと実験してみました。上のように、A,B,Cという3種類の注文を出します。Aは、スタート関数呼び出し直後の発注で、許容スリッページの幅を狭くしてあります。Bは、その10秒後に発注で、許容スリッページの幅を広くしてあります。Cは、その後の発注で、その直前にRefreshRates()関数を実行し、スリッページを狭くしてあります。上記、A→B→Cという発注を10回繰り返しました。その結果、成行き注文方式のブローカーでは、AとCの注文は通りますが、Bの注文でいくつかエラーが出ました。ところが、カウントダウン方式のブローカーでは、すべて通りました。いうことは、カウントダウン方式のブローカーでは、RefreshRates()関数によるAskとBidの更新は必要なく、常に現在価格で約定してくれるということのようです。ちなみに、カウントダウン方式のブローカーでは、OrderSend()関数であれ、OrderClose()関数であれ、許容スリッページの幅をいくらに設定しても問題なく、常に注文は通るようです。インジケーター作成代行を承ります。編集Jimdoあなたもジンドゥーで無料ホームページを。