バイナリーオプションの手法をバックテストするためのコードの基本情報を説明します。
今回の記事では、バイナリーオプションのバックテストコードの全体像を、より細かいところで説明していこうと思います。
『if~~や()、{}、ってどんな違いなんだ?』
って思ったことがある人は沢山いらっしゃると思います。
バックテストコードの骨格となる部分なので、これをまず知ることでより深い勉強や応用が出来ていきます。RSIの基本コードの全体分はこちらから公開しているのでこちらを見ながら進めると理解が早いです。
それではいきましょう。
目次
バックテストコードの全体図
まず、全体の骨格はこんな感じで出来ています。
『
#property
#property
~~
』
挨拶のようなものです。そのまま書いておきましょう。ただ、使用するバッファを宣言する場所なのでバックテストをする用の矢印を2つだすというところは知っておいてください。
『
double~
double~
』
使用するバッファの名前を付ける場所です。
多くの場合、
・ArrowUp
・ArrowDown
と表示されることが多いです。
『
extern~
int ~
』
ここは外部パラメータと呼ばれる部分です。ボリンジャーバンドをチャートの表示した時に、期間を14としたり、標準偏差を2シグマと変更したりすると思います。その変数化したい数値になる部分をこちらに宣言します。
ここまでが最初の基本的な部分ですね。
この次にくるのは、初期化関数といって最初に宣言をしたバッファの名前や意味付けをするものと思っていてください。
簡単には、矢印を出すものですよ~、とか上矢印ですよ~、みたいな感じです。
『
int OnInit()
{
SetIndexBuffer
~~
}
』
スタート関数の説明
そして、次に来るのはスタート関数というものです。
ここでやる事は、矢印を出すコートをどういった条件で出すのか。そしてその条件を満たした後にそこの結果を受けて勝率計算という形で見ることが出来るようにします。
『
int OnCalculate(
~~)
int limi =Bars-IndicaterCounted()-1;
double sum=
double win=
for(int i=limit;i>=0;i--)
{
double
double
~~
if()
{}
else if()
{}
//勝率計算を行う
if()
{
for(~~)
Print();
return(rates_total);
}
』
全体を簡単に書くとこんな感じです。
以前公開したRSIのバックテストコードとは少し違う書き方をしていますが、基本的にはこちらのほうが簡素にかつ応用が利きます。
ボリンジャーバンドバックテストインジケータプレゼント
※こちらのコードはボリンジャーバンド用のコードとしてLINE友達の方はメッセージをください。全文をお渡しします。こちらから受け取りが出来ます。
本日公開しているのは全体の骨格となります。
これを応用して、ゼロからインジケータを作成していきます。
また、コードを学習している方や勉強をしたい、質問をしたいという方はラインのほうから気軽にメッセをください。