忍者ブログ

forex tester2のインディケーターを自作

fx(外国為替証拠金取引)のトレードの練習やルールの検証をForex Tester 2というソフトでしてみます。 Meta Trader4(MT4)のインディケーター(indicator)をForex Tester2用に移植できたらしてみます。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


MFTの調査

ForexTester2用にMTF(マルチタイムフレーム,Multi Time Frame)の
インディケーターを作成するための調査をしてみます。
以下の関数を実行して出力を確認してみました。
EXPORT void __stdcall Calculate(int index) { char buf[255], i; unsigned short time[] = { PERIOD_M1, PERIOD_M5, PERIOD_M15, 30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1 }; for (i = 0; i < sizeof(time)/sizeof(short); i++) { sprintf(buf, "Bars()=%d, timeframe=%d, iTime(%d)=%f, iTime(%d)=%f", Bars(), time[i], index, iTime(Symbol(), time[i], index), index + 1, iTime(Symbol(), time[i], index + 1)); Print(buf); } }


以下は1分足でバーを1本目から6本目まで表示させた時の出力です。

 2001.01.03 08:03:00  Bars()=1, timeframe=1, iTime(0)=36894.335417, iTime(1)=0.000000
 2001.01.03 08:03:00  Bars()=1, timeframe=5, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:03:00  Bars()=1, timeframe=15, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:03:00  Bars()=1, timeframe=30, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:03:00  Bars()=1, timeframe=60, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:03:00  Bars()=1, timeframe=240, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:03:00  Bars()=1, timeframe=1440, iTime(0)=36894.000000, iTime(1)=0.000000
 2001.01.03 08:03:00  Bars()=1, timeframe=10080, iTime(0)=36892.000000, iTime(1)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=1, iTime(1)=36894.335417, iTime(2)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=5, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=15, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=30, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=60, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=240, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=1440, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=10080, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=1, iTime(0)=36894.336111, iTime(1)=36894.335417
 2001.01.03 08:04:00  Bars()=2, timeframe=5, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=15, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=30, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=60, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=240, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=1440, iTime(0)=36894.000000, iTime(1)=0.000000
 2001.01.03 08:04:00  Bars()=2, timeframe=10080, iTime(0)=36892.000000, iTime(1)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=1, iTime(1)=36894.336111, iTime(2)=36894.335417
 2001.01.03 08:05:00  Bars()=3, timeframe=5, iTime(1)=36894.333333, iTime(2)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=15, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=30, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=60, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=240, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=1440, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=10080, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=1, iTime(0)=36894.336806, iTime(1)=36894.336111
 2001.01.03 08:05:00  Bars()=3, timeframe=5, iTime(0)=36894.336806, iTime(1)=36894.333333
 2001.01.03 08:05:00  Bars()=3, timeframe=15, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=30, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=60, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=240, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=1440, iTime(0)=36894.000000, iTime(1)=0.000000
 2001.01.03 08:05:00  Bars()=3, timeframe=10080, iTime(0)=36892.000000, iTime(1)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=1, iTime(1)=36894.336806, iTime(2)=36894.336111
 2001.01.03 08:07:00  Bars()=4, timeframe=5, iTime(1)=36894.333333, iTime(2)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=15, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=30, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=60, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=240, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=1440, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=10080, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=1, iTime(0)=36894.338194, iTime(1)=36894.336806
 2001.01.03 08:07:00  Bars()=4, timeframe=5, iTime(0)=36894.336806, iTime(1)=36894.333333
 2001.01.03 08:07:00  Bars()=4, timeframe=15, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=30, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=60, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=240, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=1440, iTime(0)=36894.000000, iTime(1)=0.000000
 2001.01.03 08:07:00  Bars()=4, timeframe=10080, iTime(0)=36892.000000, iTime(1)=0.000000
 2001.01.03 08:07:30  Bars()=4, timeframe=1, iTime(0)=36894.338194, iTime(1)=36894.336806
 2001.01.03 08:07:30  Bars()=4, timeframe=5, iTime(0)=36894.336806, iTime(1)=36894.333333
 2001.01.03 08:07:30  Bars()=4, timeframe=15, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:07:30  Bars()=4, timeframe=30, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:07:30  Bars()=4, timeframe=60, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:07:30  Bars()=4, timeframe=240, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:07:30  Bars()=4, timeframe=1440, iTime(0)=36894.000000, iTime(1)=0.000000
 2001.01.03 08:07:30  Bars()=4, timeframe=10080, iTime(0)=36892.000000, iTime(1)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=1, iTime(1)=36894.338194, iTime(2)=36894.336806
 2001.01.03 08:08:00  Bars()=5, timeframe=5, iTime(1)=36894.333333, iTime(2)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=15, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=30, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=60, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=240, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=1440, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=10080, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=1, iTime(0)=36894.338889, iTime(1)=36894.338194
 2001.01.03 08:08:00  Bars()=5, timeframe=5, iTime(0)=36894.336806, iTime(1)=36894.333333
 2001.01.03 08:08:00  Bars()=5, timeframe=15, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=30, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=60, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=240, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=1440, iTime(0)=36894.000000, iTime(1)=0.000000
 2001.01.03 08:08:00  Bars()=5, timeframe=10080, iTime(0)=36892.000000, iTime(1)=0.000000
 2001.01.03 08:08:30  Bars()=5, timeframe=1, iTime(0)=36894.338889, iTime(1)=36894.338194
 2001.01.03 08:08:30  Bars()=5, timeframe=5, iTime(0)=36894.336806, iTime(1)=36894.333333
 2001.01.03 08:08:30  Bars()=5, timeframe=15, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:08:30  Bars()=5, timeframe=30, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:08:30  Bars()=5, timeframe=60, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:08:30  Bars()=5, timeframe=240, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:08:30  Bars()=5, timeframe=1440, iTime(0)=36894.000000, iTime(1)=0.000000
 2001.01.03 08:08:30  Bars()=5, timeframe=10080, iTime(0)=36892.000000, iTime(1)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=1, iTime(1)=36894.338889, iTime(2)=36894.338194
 2001.01.03 08:09:00  Bars()=6, timeframe=5, iTime(1)=36894.333333, iTime(2)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=15, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=30, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=60, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=240, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=1440, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=10080, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=1, iTime(0)=36894.339583, iTime(1)=36894.338889
 2001.01.03 08:09:00  Bars()=6, timeframe=5, iTime(0)=36894.336806, iTime(1)=36894.333333
 2001.01.03 08:09:00  Bars()=6, timeframe=15, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=30, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=60, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=240, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=1440, iTime(0)=36894.000000, iTime(1)=0.000000
 2001.01.03 08:09:00  Bars()=6, timeframe=10080, iTime(0)=36892.000000, iTime(1)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1, iTime(0)=36894.339583, iTime(1)=36894.338889
 2001.01.03 08:09:30  Bars()=6, timeframe=5, iTime(0)=36894.336806, iTime(1)=36894.333333
 2001.01.03 08:09:30  Bars()=6, timeframe=15, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=30, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=60, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=240, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1440, iTime(0)=36894.000000, iTime(1)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=10080, iTime(0)=36892.000000, iTime(1)=0.000000

以下は1分足でバーを6本目まで表示させた状態でインディケーターを読み込んだ出力です。

 2001.01.03 08:09:30  Bars()=6, timeframe=1, iTime(5)=36894.335417, iTime(6)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=5, iTime(5)=0.000000, iTime(6)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=15, iTime(5)=0.000000, iTime(6)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=30, iTime(5)=0.000000, iTime(6)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=60, iTime(5)=0.000000, iTime(6)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=240, iTime(5)=0.000000, iTime(6)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1440, iTime(5)=0.000000, iTime(6)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=10080, iTime(5)=0.000000, iTime(6)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1, iTime(4)=36894.336111, iTime(5)=36894.335417
 2001.01.03 08:09:30  Bars()=6, timeframe=5, iTime(4)=0.000000, iTime(5)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=15, iTime(4)=0.000000, iTime(5)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=30, iTime(4)=0.000000, iTime(5)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=60, iTime(4)=0.000000, iTime(5)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=240, iTime(4)=0.000000, iTime(5)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1440, iTime(4)=0.000000, iTime(5)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=10080, iTime(4)=0.000000, iTime(5)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1, iTime(3)=36894.336806, iTime(4)=36894.336111
 2001.01.03 08:09:30  Bars()=6, timeframe=5, iTime(3)=0.000000, iTime(4)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=15, iTime(3)=0.000000, iTime(4)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=30, iTime(3)=0.000000, iTime(4)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=60, iTime(3)=0.000000, iTime(4)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=240, iTime(3)=0.000000, iTime(4)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1440, iTime(3)=0.000000, iTime(4)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=10080, iTime(3)=0.000000, iTime(4)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1, iTime(2)=36894.338194, iTime(3)=36894.336806
 2001.01.03 08:09:30  Bars()=6, timeframe=5, iTime(2)=0.000000, iTime(3)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=15, iTime(2)=0.000000, iTime(3)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=30, iTime(2)=0.000000, iTime(3)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=60, iTime(2)=0.000000, iTime(3)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=240, iTime(2)=0.000000, iTime(3)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1440, iTime(2)=0.000000, iTime(3)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=10080, iTime(2)=0.000000, iTime(3)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1, iTime(1)=36894.338889, iTime(2)=36894.338194
 2001.01.03 08:09:30  Bars()=6, timeframe=5, iTime(1)=36894.333333, iTime(2)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=15, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=30, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=60, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=240, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1440, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=10080, iTime(1)=0.000000, iTime(2)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1, iTime(0)=36894.339583, iTime(1)=36894.338889
 2001.01.03 08:09:30  Bars()=6, timeframe=5, iTime(0)=36894.336806, iTime(1)=36894.333333
 2001.01.03 08:09:30  Bars()=6, timeframe=15, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=30, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=60, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=240, iTime(0)=36894.333333, iTime(1)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=1440, iTime(0)=36894.000000, iTime(1)=0.000000
 2001.01.03 08:09:30  Bars()=6, timeframe=10080, iTime(0)=36892.000000, iTime(1)=0.000000


わかったこと
timeframeが小さいもののほうがiTime()の戻り値が大きい。
完成した足の時間だから細かい足ほど大きくなるのはあたりまえか。

Bars()が増えると同時にindex=1となる。
Bars()が増えたときに初めて前の足の終値が確定(前の足が完成)するからですね。
index=0のときは確定していない値なので何も処理しないほうが潔くていいかもしれないです。

indexの値で大きい時間枠にアクセスしてはいけない。
大きい時間枠の足を1つづつ過去にさかのぼって
小さい時間枠より大きい時間枠が小さくなった足を利用する感じですかね。

30分の定義値が無いですが使えるようですね。
50分にしてみたら使えなかったので30は使えそうですね。

興味のある方はいろいろ自分で試してください。そのほうが身につきます。
分かりにくかったけど今日はこの辺で。

PR

トラックバック

トラックバックURL:

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字(絵文字)


forex tester2 販売
Forex Tester 2の購入はこちらから。
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
カテゴリー
フリーエリア



最新記事
最新CM
最新TB
RSS
ブログ内検索
アーカイブ
最古記事
プロフィール
HN:
fx練習生
年齢:
49
性別:
男性
誕生日:
1975/04/03
職業:
夢は専業トレーダー
趣味:
fx
自己紹介:
fxの専業トレーダーになって経済的自由と時間的自由を手に入れたいです。
自分で売買ルールを作成してテストして自信をもってリアルトレードしたいです。
P R