【無料】メールマガジン配布します!

真実!しか流さないメールマガジン《不定期》

メルマガのお申し込みはコチラ

TimeCurrent()の謎? 時間決済は、どうするのかな

 

今日は、知り合いのトレーダーから月で資金が2倍になるようなEAって作れないですが(爆)

との相談。。。。。。。(´・ω・`)

まぁ、そんなものがあるなら俺がほしいよと思いながら

 

ただし、相談の内容は、、資金が飛んでもいいから倍になるかもっていう

 

ハイリスク・ハイリターンEAらしい

 

なるほどそれは、面白いなと、空いた時間でいろいろ考えてます。

 

そこで出てきたあれ?ってこと

Positime_Buy1 =OrderOpenTime();

//— Time Exit

   if( TimeCurrent() – Positime_Buy1  > 12000 ) CloseAll();

 

オープンポジションの時間を取得して、単純に12000分経過したら時間制限で決済するようにコードを書いたつもりなのですが^^;なぜか、、、、、、、、

20140315155806

 

20140315155751

 

ポジションを持った瞬間に決済されてしまうという現象が、、、、、

 

こんな基本的なことがわかってないんすよね^^;

何だろうと調べてみました。

 

Print("Positime_Buy1 =",Positime_Buy1)

こんな時は、地味にどんな感じで数字が変化しているのか、Printで調べて見るのがいい。

 

この手の単純な勘違いは、結構はまって時間かかる場合があるから地道に調べるのが一番。

 20140315164231

 

ぬぬ、、、、、ポジション持った後にきっちり時間を調べに行っているようですね。^^;

 

時間が確認しにくいので

TimeToStr(Positime_Sell1)

時間に変換してみてみようかなと、コードをプラスして

 

20140315164602

 

 

問題ない、、、、何でだろうっと思ってたら笑

 

当たり前でした(´・ω・`)ガッカリ…

 

Positime_Buy1 =OrderOpenTime();

これをポジション持った時だけしか調べてなかったので、通常時は、ゼロになっていました。

常に決済注文を入れているような状況でした。。。。。これって怖

 

//— Time Exit

   if( TimeCurrent() – Positime_Buy1  > 12000 ) CloseAll();
   if( TimeCurrent() – Positime_Sell1 > 12000 ) CloseAll();

 

こんな感じで、ロングとショートの決済を分けていたので、どっちかの決済が動くわなそりゃ

ポジション持っている時だけ、決済するようにコード書き換えました。

これは、ちょっとした勘違いですね。ポジション持っている時しかオープンタイムが入らないから大丈夫かなという変な思い込みですた。(はずかしいぃほど、基本的なこと)

決済とエントリーは、失敗すると酷いことになるので要注意です。

 

20140315170841 

20140315170915

 

思惑通り動きました^^

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

tomoよりのお願い

参考になったちょっと役に立ったお疲れさんって
少しでもおもったかた(*゜▽゜ノノ゛☆

 

ポッチっとお願いします。その1ポチ!ありがとう

にほんブログ村 為替ブログ FX初心者本人(1年目)へ
にほんブログ村

 

このエントリーをはてなブックマークに追加 はてなで広めてください。この記事が役に立つ人がいると思います。
←左のボタンをクリックして共有してください。

 

 

タグ

2014年3月15日 | コメント/トラックバック(0) |

カテゴリー:  初級編

トラックバック&コメント

この投稿のトラックバックURL:

コメントをどうぞ

このページの先頭へ