自分が作っているEAのほとんどがその日のうちに手仕舞うようなEAになっているのですが、時々手仕舞いの時間になってもポジションが決済されてない時があって、「サーバー側のエラーなのかな?」と思って、とりあえず、応急処置のプログラムを入れていたのですが、
ふと調べてみると・・・エラーコード138というのが原因ということにたどり着きました(-_-;)
1.エラーの原因はエラーコード138!
そもそも最初は、エラーコードを見るという頭すらなかったのですが、ふとした時に、エラーコード出てんじゃね?と思ってみると、、、
エラー138!
で早速ググってみると以下の記事にたどり着きました。。どうやら決済時のスリップページが原因のようで、やっと腑に落ちたという感じです。(とはいえ今までの悔しさはぬぐい切れないところもありますが、、、)
2.対処方法
参考記事に記載の通り、単純にスリップページを調整してやればいいだけの話なので、以下の通り修正をすればいいかと思われます。。
ちなみに、サンプルソースそのまま流用している方はスリップページが3になっていると思います。
修正前 OrderClose(OrderTicket(),OrderLots(),Ask,3,White)
修正後 OrderClose(OrderTicket(),OrderLots(),Ask,30,White)
EAの入れ替え作業が面倒だなぁ。。。