Dr.田平のテクニカル
今回は田平雅哉のFX「スイングトレード」テクニックで紹介されているテクニカルを私なりに改造して検証してみました。
本の内容は、Macdの性質やストキャスの性質、ローソク足の性質などを詳しく書いてあり、その組み合わせで利益が出るというもの。
検証といっても、ほんの表面的なところをパクりどんなもんかなぁ~程度に調べてみただけです^^;
今後は、もっと掘り下げて検証を続けていきたいと思います!!
では、どのようなロジックにしたかというと、
トレンドは、移動平均線(200日)の方向で決めます。
次にMacdとストキャスの条件でサインを決めます。
(期間は本の通り)
トレンドとサインが 1 になったら買いでサインが -1 になったら決済といった感じで取引します。
もちろん、一つのバーで2回取引しないようにしておきます。
一部公開
double ave2001=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,1);
double ave2002=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,2);
double Macd1=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
double Signal1=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
double sto1 = iStochastic(NULL, 0, 42, 3, 3, MODE_SMA, 0, MODE_MAIN, 1);
int trend;
if(ave2002 < ave2001)
{
trend=1;
}
if(ave2002 > ave2001)
{
trend=-1;
}
int sign;
if( Macd1>Signal1 && Macd1<0 && sto1<15) sign=1;
if( Macd1<Signal1 && Macd1>0 && sto1>85) sign=-1;
AUDJPYの一時間足で、2000年から七年間をバックテストした結果、
勝率100%でした。しかし、もっと使えるロジックにする必要があるようです・・・。
ロジックはほんの表面だけなので今後よりパワーアップしたいと思います。
また、成果を報告しますね!
2007年11月26日|コメント (8)|トラックバック (0)
カテゴリー:投資戦術の検証
参考書のルールをパクる
先日、田平雅哉のFX「スイングトレード」テクニックに出てくる売買ルールを私なりに解釈しプログラム化しバックテストした結果、驚くべき結果が!!
まあ、バックテストの結果でしかないんですが、勝率100%になったんです!!詳しくは、また後日必ず書きますね(^_^;
でわでわ。
2007年11月25日|コメント (0)|トラックバック (0)
カテゴリー:その他
知識を武器にする
FX入門書や、売買戦略の参考になるもの、投資に対する考え方を身につけるために読んでおいたほうが良い本をピックアップしてまとめました。→こちら
2007年11月14日|コメント (0)|トラックバック (0)
カテゴリー:投資書籍
複利システムにする方法
今回は、米ドルの口座で米ドル通貨の取引(USDJPY や USDCAD など)において、口座残高に応じて取引額を決定するといった方法を紹介します。
①レバレッジをパラメータ化する
②ロット数の計算
③例外の処理
④オーダーに変数をはめ込む
まずは、①のレバレッジですが
これの変数を Leverage としておきましょうか。
入力する場所はもうお分かりですね。わからない方は完全自動売買への道のりで復習をしてください(^^;
extern int Leverage =10;
といった感じです。今回はレバレッジ10倍でやっていきましょう。
次に②。場所はオーダーの前辺りでよいのではと思います。
1万通貨刻みで取引するのでロット数は0.1刻みになります。
その計算がこちら。
double mantuka = AccountBalance() / 10000;
int baituka = mantuka * Leverage;
double lots = baituka * 0.1 ;
今回は変数の宣言と計算を同時におこなってますよ。
まずは、
残高を取引単位の1万で割り、小数の変数 mantuka に代入します。
次に、
mantuka にレバレッジをかけて、整数の変数 baituka に代入します。
ここで変数を整数にすることによって、計算された小数点以下の値を切り捨てることになります。
ここで、何万通貨取引するか決定しましたね。
最後に、
1万通貨は0.1ロットなので、baituka に 0.1 をかけて、小数の変数 lots に代入します。これでロット数がきまりました。
しかし、③です。
計算されたロット数が、最小未満だったり最大より大きかったりした場合、オーダーを受け付けてもらえません。
なので、今回は lots が0.1ロット以下の場合は0.1ロットで、1000ロット以上の場合は1000ロットで取引するようにしましょう。
if(lots<=0.1) lots=0.1;
if(lots>=1000) lots=1000;
こうしておけば、大丈夫ですね。
そして、最後に④です。
これはもう、お分かりだと思いますが、OrderSend のカッコ内のロットを指定する箇所に変数 lots と入力すればオッケーです。
これで、複利システムは出来上がりです。
これの応用では、日本円の口座での複利システムも可能です。
例えば、USDJPY の取引では、
double mantuka = AccountBalance() / (10000*(Ask));
としておけばよいかと思います。
さらに、テクニカル指標の指数によってレバレッジを変化させることも可能ですよね。
がんばって、良いロジックをみつけましょう!!
2007年11月12日|コメント (2)|トラックバック (0)
カテゴリー:EAの作成方法
MetaTrader4逆引き大全集
MetaTrader4 の辞書みたいなものがあったらいいな~
と、思っていたら
ありました。
しかも、バージョンアップするごとに無料でもらえるとのこと。
→こちら
やはり、細かな設定などをプログラムするときに、
一つ辞書があったら便利ですね~!
2007年11月 4日|コメント (0)|トラックバック (0)
カテゴリー:投資書籍



