OrderClosePriceがゼロとは?

自作EAのバックテストをしていてうまいかなかったことの記録を残しておこう。
なお、解決法は未だわかっていない(爆
アイデアのある方はコメントお願いしますm(_"_)m


(追記)
faiさんのおかげで無事解決できました(喜
ありがとうございました






EAのロジックは
1日1回
安値の下に逆指値で売り注文。
高値の上に逆指値で買い注文。
というもの。

データは1分足である。
画像のように1分足データはそろっている。

EAで数ヶ月バックテストをすると、数日だけ買いの逆指値は中が出来ない日がある。
待機注文のデータをCSVファイルで書き出してみた。
EXCELへ書いたのは下記の事項
void サーバー時刻 OrderClosePrice() OrderCloseTime() OrderComment() OrderExpiration() OrderLots() OrderMagicNumber() OrderOpenPrice OrderOpenTime() OrderStopLoss() OrderSymbol() OrderSymbol() OrderTakeProfit() OrderTicket()
である。

OrderClosePriceがゼロだと発注されず



この中で、異常時の 買いの逆指値が発注できない時刻に共通するのは
OrderClosePrice()がゼロであること。
そのときに買いの逆指値発注が出来ないのである。
ちなみに、このときに売りの逆指値発注は出来ている(汗

私見では0より不利な買い注文は逆指値なので発注できて、
0より有利な売り注文は逆指値では発注できない(指値の売り注文は入ってもわかるが)
すなわち私見とはバックテスト時とは逆のことが起きている。


なぜなのだろうか?

?????
である。

そもそも、OrderClosePriceがゼロとはどのようなときに起きるのだろうか?
もう少し考えて悩んでみます。







(追記)
faiさんのおかげで無事解決できました(喜
ありがとうございました


せっかく教わったので その一部始終を書き残しておきます。
最初のアドバイスは
faiさん : 
「そもそも、発注が出来ていないのに、OrderClosePrice() を見る必要性がわかりません^^;」

でした。

私としては、教わったことはもっともなのですが、
saru999 :
「ほかにバグ取りの時にどのような情報取得手段があるかわからないです」

というどうしたらいいかわからない。という状態でした(涙

次に教わったのは
faiさん
指値を入れようとした時点で、既にその指値を超えていたら、当然、指値注文ははいらないでしょう^^;


saru999
まさかそんな原因があるとは全く気がつかなかったです(大汗


さらに教わったのは具体的な確認の方法でした。
faiさん
「今回のEAバックテストでは発注が出来ていないわけなので、
発注後にエラーが出ていないかをGetLastErrorで取得して、
さらにエラーは番号でしか示されないのでわかりやすくするために 
ErrorDescriptionをつかってエラー内容を文字でも表し、Print文」
「そうすると、EAバックテスト時には   Print文のエラーコードは    
C:\Program Files\FXDD - MetaTrader 4\tester\logs
で確認できます」

というアドバイスでした。

教わったログには
「22:57:06 2010.02.19 00:10 MyLib USDJPY,M1: [OrderSendError] : 130 invalid stops Ask=91.89 Bid=91.86 type=OP_BUYSTOP pr=91.81 sl=91.71 tp=92.11」とあり、エラーは 
130 invalid stops
マーケットのBidが91.86なのに、91.81で”逆指値”で買おうとしているので注文が通りません!
と 書いてありました。

こうして、
すべての謎が解けました!(喜


そして、なによりも学んだのはEAのバックテスト時のエラーは 私が最初やったようなcsvファイルへの書き込みではなく、
エラーをPrintして、C:\Program Files\FXDD - MetaTrader 4\tester\logsをみるということです。


せっかく教わったので、記録として残しておきます。

faiさん、ありがとうございました。
心よりお礼申し上げます。









コメント

No title

http://ux.getuploader.com/fai_fx/download/130/experts0.lzh pass=saru999 にチェックしたものを置きました。
指値を入れようとした時点で、既にその指値を超えていたら、当然、指値注文ははいらないでしょう^^;

faiさんへ

教えていただき、ありがとうございます。

>指値注文ははいらないでしょう
その通りですね(大汗
1週間悩みましたが、私にはバグの原因がわからなかったのです。

そもそも、フォワードテストの時にターミナルのExpertsをみていました。
バックテストの時はPrint文を書いてもどこに表示されるかわからずに困っていました。
C:Program FilesFXDD - MetaTrader 4logsにも残っていなかったので。
これが大間違いでしたね。

Print文のエラーコードは
C:Program FilesFXDD - MetaTrader 4testerlogsという別のモノにPrint文がでるのですね。
大変勉強になりました(喜

お忙しい中、教えていただきありがとうございました。
心よりお礼申し上げます。

コメントの投稿

管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー) URL

最近のコメント
FC2カウンター
先輩FXトレーダー
最近の記事
プロフィール

saru999

Author:saru999
(投資との出会い)
若い頃から投資に興味は持っていました。当時は個別株の本を読んでいました。
そんなときに、外貨預金の発展形としてFXに出会いました。
当時はまだ為替投資が一般に始まったばかりでした。
いろんな人が、他市場の商品相場の手法、株式相場の手法、オプションの手法をFXに持ち込みそれを学びながらトレードしました。

(投資経歴 )
私自身はもいろんなトレードをしました。
シストレ逆張りトレード、裁量トレードやトレンドフォローから始めました。
うねりとり、つなぎうりもしました。
高金利通貨売り等大衆と逆のポジションを取るトレードもしました。
保有期間も日足・中期足・短期足等色々やりました。
さらに、数年前からは自動売買プログラムで資金を運用するようになりました。
MT4/EAを使うようになってトレードの精神的負荷は少なくなりました^^


(現在)
3つの時間軸と手法で運用をしています。
短期はFX。MT4・自作系EA(自動売買プログラム)で為替・金・銀を運用しています。
中期は225オプションです。サヤトリ系トレードを研究しています。
長期は人民元積立投資+つなぎトレードです。
投資を始めて約10年になりますが、投資は奥深く興味が尽きません。
使用プログラム言語はMQL,EXCELVBA,pythonなど。

全記事表示リンク

全ての記事を表示する

有益なリンク集
FXトレード関係
IMMポジション 外為.com
経済指標カレンダーURL
統計資料店頭FX月次速報URL
チャート データ マーケット関係URL
中央銀行 URL国家機関 URL
重要指標の過去チャートURL
債券長中短期URL月10更新
為替レートと2国間金利差の相関チャートURL
トレード用の情報源URL
期間違い相関係数URL 通貨別相関係数URL
過去のスワップ金利URL
トレード英語URL
ポジション売買データURL
OANDAURL
JimRogersBlogURL
建玉数量クリック365 URL


債券・株式・商品
世界の株価URL
債券の利回り比較URL
225出来高日経225
株/外国人投資家の動向URL
日本株外人売買データURL
オプションCDSURL
グロソブウィークリーレポート木曜公表
株・株式優待URL
金建玉URLURL
商品・金銀WTIURL



MT4/MT5/FT2/シストレ系
MT4日本語リファレンスURL
MT4情報BBS等URL
VPSmemoURL
FT2 URL
MT5URL

Windows7 URL
Perl C++ java APIURL
統計解析等URL
4本値データURL
プログラム用英単語URL
WEBラーニングPROGURL
オブジェクト指向/デザインパターンURL


ニュース
動画日経 URL
bloombergURL
nikkeiURL
reutersURL
ラジオTV動画 URL




その他 トレード以外
Google翻訳URL
ThesaurusURL
Skype CommunityURL
かわいい動画URL
みずほ仲値データURL
日米経済調和対話2011.3(年次改革要望書)URL
無料ワクチンMS URL

ブログ関連 挿絵画像URL