menu
閉じる
  1. Swallowがfx-on収益率ランキング2位!
  2. Genesis Traderのスキャルロジックを最適化!
  3. 2015年度好調なEAその2:2Guns
  4. FX自動売買を野球に例えると
  5. シロクマさんEA復活傾向か?
  6. 保有時間制限のあるスキャルEA Inon_Scalping_Maste…
  7. 初のcBot作成と個人的に躓いた点
  8. Genesis Traderを導入でリアル成績を初?公開
  9. 2016年2月第5週~3月第1週の運用成績
  10. 試用版EAの配布を始めてみる
閉じる
閉じる
  1. 初のcBot作成と個人的に躓いた点
  2. cTraderでの自動売買に挑戦
  3. 日本人は野球もコツコツドカンか
  4. Swallowタイアップキャンペーンと裏話
  5. 期待利得を見ればEAのスプレッド耐性がわかる
  6. Swallowのポジション保有時間に関するコード修正
  7. Swallow試用版を用意しました
  8. 2016年末にあたり思うこと:EA選定基準など②
  9. 2016年末にあたり思うこと:EA選定基準など①
  10. そのEA、スプレッド耐性ある?
閉じる

あっきー and Company

一定時間経過での手仕舞い

fx-onに出品させていただいているSwallowにはポジションをとってから一定時間(デフォルトでは36時間)経過した際にポジションを強制決済する機能を付けています。

最後のポジション取得から36時間、ということなので、両建て状態(売り買い1つずつのポジション)になった時は、1つ目のポジション取得から強制決済までの時間は最長71時間になります。

(つまり、例えば買いポジションを取って35時間経過した後に売りのシグナルが出て売りポジションを持った場合、時間のカウントはリセットされ、強制決済の時間は売りポジションを持ってから36時間になるということ)

プログラム的にはポジション取得時間をdatetime型で記録しておいて、その時間から36時間経過したら強制決済ということにしていたのですが…

フォワードテストで走らせているとある問題に直面。

それは、ポジションが週末持ち越し状態になると当然、月曜マーケットオープン時には金曜マーケットクローズ時から36時間以上経過しているわけなので、週明けで市場が開いた瞬間に持ち越しポジションが決済されてしまうということです。

気づいてみれば当たり前なのですが、気づかないままリリースしてしまっていました(~_~;)

そういうロジックなんだと思えばそれはそれでいいのかもしれませんが、マーケットオープンの瞬間はスプレッドが開いてトレード的には不利な状態になっていますし、元々意図していた挙動ではないのでまあ直した方がいいよねという話で。

行き過ぎからの戻りを狙うスイングEA
Swallow | fx-on.com

 

これを解決するにはどうしたらいいんだろうと思い、MQL4プログラミングのバイブル、FXメタトレーダー実践プログラミングを読んでみるとドンピシャのプログラム例を発見。

iBarShift関数を使って「バーがエントリー時から一定本数更新されたところで決済」とすればいいということらしい。

確かにこうすれば週末はバーの更新はありませんので、バーが36本更新されたら強制決済ということにすれば、マーケットが開いている間で36時間経ったら決済ということにでき、週明けでいきなりポジションが決済されてしまうという現象は防げますね。

それで早速プログラミングしてみたのですが…今度はバックテストしてみるとドローダウンが3割くらい大きくなるという問題に直面。

週末持ち越しするようにしてロジックが変わったんだから当たり前じゃね?と思われるかもしれませんが、試行錯誤する中で週末クローズ機能を付けてみても同じ結果になるんですよ。

つまり、「ポジション取得から36時間経ったら強制決済」と「週末23時に強制決済」というロジックは同じで、時間の経過をポジション取得からの秒数で判断するかバーの本数で判断するかというだけの違いなのですが、なぜかドローダウンが違うという状況。

損益は大体同じなんですけどね。

いろいろ原因を調べてはみたのですが、プログラムに間違いはなさそうだし、含み損益でドローダウンが大きく出ているわけでもなさそうだし…

Quant Analyzerを使ってポジションの保有時間を調べてみると確かにちょこちょこ違う点は見られるのですが、細かすぎて明確な違いを特定するには至らず。

どうしてなんだろうな~。

とりあえず週末決済する限りには元々の問題であった週明け決済という問題は回避できるので、プログラムとしては時間の経過は元と同じくポジション取得からの秒数で判断することにして、週末決済機能を付けることで落ち着きはしたのですが、原因がわからずどうもしっくりきません。

祝日での休場とか、そういうのが関係している可能性もあるんだろうか。

もう少し考えてみようとは思いますが、プログラミングは難しいですな(^_^;)

関連記事

  1. オリジナルEA開発に着手

  2. 他通貨ペア価格を参照しながらのバックテスト

  3. Swallow試用版を用意しました

  4. 試用版EAの配布を始めてみる

  5. 転んでも ただでは起きんぞ こうなれば

  6. ボリンジャーバンドのクロスで売買するEA

おすすめ記事

  1. 初のcBot作成と個人的に躓いた点
  2. cTraderでの自動売買に挑戦
  3. Swallowタイアップキャンペーンと裏話
  4. 期待利得を見ればEAのスプレッド耐性がわかる
  5. 2016年末にあたり思うこと:EA選定基準など①

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


SNS

記事の更新情報はこちらから。

Facebook、Twitterもやってます!



follow us in feedly

サイト内検索

スポンサードリンク


EZインベスト証券×Swallowタイアップキャンペーン


bitFlyer ビットコインを始めるなら安心・安全な取引所で
ページ上部へ戻る