前回[EasyLanguage]手数料を設定して現実に近いシステムトレードをしようで手数料の設定方法を紹介しました。
正確な手数料を出すには、別途プログラムを組まないとダメそうでしたが、おおよその手数料は出せました。
しかも、その手数料は場合によっては、無視できない金額にもなっていることがわかりました。
今回は、足の形成途中でも売買注文を出してバックテストをする方法を紹介します。
足の終値などではなく、その途中で売買したとした場合で、バックテストができます。
ある金額を越えたときに買い注文を出すという場合があるかと思いますが、金額を超えた足の後の足での約定では、想定と大きく異なってしまいます。
そんなときに、今回紹介する方法を使ってください。

目次
Buy文やSell文の特徴
ストラテジーを作る際に、Buy文やSell文を作って、売買注文を出していると思います。
ですが、Buy Next Bar at Marketや、Sell this Bar on Closeのように、一番直近でも、今の足の終値までしか選択できません。
もしも、株価が100円を越えたときに買い注文を出すとしても、その足の終わりに105円に急騰してしまうことだってあります。
そうなると、予想通りの取引ができず、損してしまいます。
こういった現象をできるだけなくそうというのが、今回の内容です。
足の形成途中でも有効にするための解決策1 足種を細かくする
解決策としては、足種を細かくするという方法があります。
単純に、5分足で見ていたものを、1分足や秒足で見ればよいということです。
ですが、もし「5分足を参照した移動平均線がある条件を満たしたとき」など、特定の足種で条件分を記述している場合、対応ができなくなります。
そういうときは、別の解決策があります。
足の形成途中でも有効にするための解決策2 表示している足と計算している足を変える
そんなあなたには、下記の方法をおすすめします。


まずは、チャート分析ウィンドウにストラテジーを挿入してください。

ストラテジーの設定から、「すべてのプロパティ」をクリックしてください。
「ストラテジープロパティ」ウィンドウが開くので、「一般」タブから「バックテスト」で、「ルックインサイドバーバックテストを使用」にチェックを入れてください。
そして、計算したい足種を選んでください。ティックも選べます。

さらに、「バックテスト」タブから、「ルックインサイドバーバックテストでイントラバー注文生成最適化を有効にする」にチェックを入れてください。
こうすることで、表示している足よりも細かい足(またはティック)で計算してくれます。
簡単ですね!
足の形成途中で注文を出すには?ストラテジーの作成方法
実際に、足の形成途中で注文を出すにはどうすればよいでしょうか。
先程も述べたように、Buy文やSell文では、足の形成途中で注文を出すことはできません。
ではどうすれば良いかというと、OrderTicketコンポーネントを使うしかありません。
条件を満たした瞬間に、OrderTicketは注文を市場に出せるので、足の形成途中でも関係ありません。
注意してほしい点は、条件文のところで、5分足の移動平均であったり、現在の足を計算に含んでいる場合は、結局のところ足が形成されないと判定できないので、足の形成途中で注文が出ることはありません。
設定が完了したら
設定が完了したら、自分の思っているところでバックテストできているかをチェックしてください。
バックテストするにはBuy文などで、実用化するにはOrderTicketなので、そこにギャップが出ないように十分気を付けてください。
はじめのうちは、実際の注文は出さずに、print文を使って、印刷ログに出力する方が良いかもしれません。
ちなみに、このサイトで作ったストラテジーCrossAverageはチャートに表示されている足で移動平均線を引いて、それがクロスしたときに売買注文が出されるものなので、ルックインサイドバーを使って、いくら細かく見ても、結果は変わりません。
さいごに
バックテストを、より現実に近い状態で行えるような設定方法を紹介しました。
バックテストで良い成績を残したとしても、喜んでばかりはいられません。
そのバックテストが実際の取引と同じになるように配慮が必要なのです。
システムトレードで重要なバックテストをより現実的にしてみてください。
