膨大な分析結果。M2Jバンザイ
MT4の三種の神器?を用いて、トルリピ君が各種トレード手法の最適値を占います。
したがって、ロスカットをもたらす危険な情報満載ですので、ご注意してご覧下さい。

記事の分析結果は今後も同じ結果をもたらすことは皆無です。実施したい場合、ご自身で
バックテストを十分に行い再検討してから実施してください、鵜呑みで真似はしないで下さい。
トラップリピートイフダンをFX(外交為替証拠金取引)で使えるのはマネースクエア・ジャパンだけなのですが、
当ブログではMT4で個人所有のPCから都度注文を取引会社サーバに出して、特許を侵害せず真似しています。
MT4で使っているFX会社はポジションが建つと証拠金が発生します。M2Jはトラップリピートイフダンを設定した時に
証拠金が発生するので、結果を真似したい場合は証拠金額を売り予約ポジションの差額分だけ余分に用意して下さい。

しょぼいPCで分析しているため、時間短縮のために大きな足の開始値のみで分析しています。本当は1分足とか
ティックで分析すれば良いのですが、それでは何百時間もかかります。1時間足でも何十時間もかかります。
ですので、1時間内に激しく上下する相場の場合その分の利益はカウントされていませんが、リピートイフダンは
値動きしか関係有りませんので、RSIやMACD等のロジックとは違い、値動きタイミングは無視した分析をしています。

2010年10月21日

フィボナッチリトレースメントでは儲からなかった・・・

EAの掲載でも喜ぶ人もいたので、嬉しさの余り・・・

FXをやってるとちょくちょく聞く「フィボナッチリトレースメント」のEAです。

予約注文の削除機能付きのEAですので、他のEAと同時に動かせますが、デモで動作確認して使ってね。
注意:パラメータはAUD/NZDの1時間足に合わせていますが、儲かりません・・・

 フィボナッチリトレースメントEA:Fibonacci_AUD_NZD.ex4(さわるな危険!!)


過去のチャートの最高値/最低値の間を100%として、その、
38.2%
50%
61.8%
を基準として売買させるようにしたのですが、裁量トレードでは役に立つ手法もEA化してみると意外と儲からないヤツです。

下記の4通りの売買をしますが、テスト用に作っただけですので注文の発注に関してのエラー処理が未熟です。

・買いトレード1、50%超えている時に、38.2%で指値建玉。50%決済
・買いトレード2、38.2%未満の時に、38.2%で逆指値建玉。50%決済
・売りトレード1、38.2%超えている時に、61.8%で逆指値建玉。50%決済
・売りトレード2、50%超えている時に、50%で逆指値建玉。38.2%決済
【低値を0% 高値を100%に固定して説明】

使い方は、EAを動かしていないチャートなら何でも良いので、Fibonacci_AUD_NZD.ex4をドロップダウンしてもらえば良いのですが、パラメータの変数の説明は下記の中身を見て下さい。

//+------------------------------------------------------------------+
//| Fibonacci_EA.mq4 |
//| Copyright ゥ 2010, MetaQuotes Software Corp. |
//| http://forex.toyolab.com |
//+------------------------------------------------------------------+
#property copyright "Copyright (c) 2010, TORURIPI-R"
#property link "http://sys-trd.com"

//マジックナンバー A=10 n=14 +24
extern int magic0 = 24000;//同じ通貨ペアで複数動かすときに値を変えてください
#define MAGIC1 10100100
#define MAGIC2 10100200
#define MAGIC3 10100300
#define MAGIC4 10100400
#define COMMENT1 "Fibo_BUY_LIMIT_TORURIPI-R"
#define COMMENT2 "Fibo_BUY_STOP_TORURIPI-R"
#define COMMENT3 "Fibo_SELL_STOP_TORURIPI-R"
#define COMMENT4 "Fibo_SELL_50STOP_TORURIPI-R"

//パラメーター
extern double Lots = 0.1;//売買ロット0.1=1万通貨
extern int lookback = 158;//HI.LOWを決める足の数長いほど過去重視
extern double loss1=0.05;//買いトレード1のポジションの損切り値調整用
extern double loss2=0.028;//買いトレード2のポジションの損切り値調整用
extern double loss3=0.05;//売りトレード1のポジションの損切り値調整用
extern double loss4=0.005;//売りトレード2のポジションの損切り値調整用
extern int keeptime=21600;//6時間で一旦注文をリセット
extern double loss0=0.0005;//買いトレード2の買値調整
//1.29123

extern color FibColor= Gray;
extern int lastbar = 5;
extern int Slippage = 0;
double loweststock;
double higheststock;

//+------------------------------------------------------------------+
//| 予約を削除する |
//+------------------------------------------------------------------+
void DeletePositions(){
for(int i=0; i < OrdersTotal(); i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true){
if(OrderMagicNumber() == MAGIC1+magic0 && OrderSymbol() != Symbol()){
OrderDelete(OrderTicket());
}
if(OrderMagicNumber() == MAGIC2+magic0 && OrderSymbol() != Symbol()){
OrderDelete(OrderTicket());
}
if(OrderMagicNumber() == MAGIC3+magic0 && OrderSymbol() != Symbol()){
OrderDelete(OrderTicket());
}
if(OrderMagicNumber() == MAGIC4+magic0 && OrderSymbol() == Symbol()){
OrderDelete(OrderTicket());
//Alert(OrderTicket());
}
}//if(OrderSelect(i,SELECT_BY_TICKET,MODE_TRADES)

}//for(int i=0; i < OrdersTotal(); i++)
}//sub end



// 現在のポジションのロット数(+:買い −:売り)
double R_CurrentOrders(int magic){
double lots = 0.0;

for(int i=0; i < OrdersTotal(); i++){
if(OrderSelect(i, SELECT_BY_POS) == false) break;
if(OrderSymbol() != Symbol() || OrderMagicNumber() != magic) continue;

if(OrderType() == OP_BUY || OrderType() == OP_BUYLIMIT ||
OrderType() == OP_BUYSTOP) lots += OrderLots();
if(OrderType() == OP_SELL || OrderType() == OP_SELLLIMIT ||
OrderType() == OP_SELLSTOP) lots -= OrderLots();

if(lots != 0) break;
}//for(int i=0; i < OrdersTotal(); i++)
return(lots);
}


//+------------------------------------------------------------------+
//| スタート関数 |
//+------------------------------------------------------------------+
int start()
{
ObjectDelete("Fibo");
int counted_bars=IndicatorCounted();
//----
double lowest=1000,highest=0;
datetime T1,T2;
for(int i=lookback+lastbar;i > lastbar+1;i--){
double curLow0=iLow(Symbol(),Period(),i-2);
double curLow1=iLow(Symbol(),Period(),i+1);
double curLow2=iLow(Symbol(),Period(),i);
double curLow3=iLow(Symbol(),Period(),i-1);
double curLow4=iLow(Symbol(),Period(),i-2);

double curHigh0=iHigh(Symbol(),Period(),i+2);
double curHigh1=iHigh(Symbol(),Period(),i+1);
double curHigh2=iHigh(Symbol(),Period(),i);
double curHigh3=iHigh(Symbol(),Period(),i-1);
double curHigh4=iHigh(Symbol(),Period(),i-2);

if(curLow2 <= curLow1 && curLow2 <= curLow1 && curLow2 <= curLow0 ){
if(lowest > curLow2){
lowest=curLow2;
T2=iTime(Symbol(),Period(),i);
}
}//if(curLow2

if(curHigh2 >= curHigh1 && curHigh2 >= curHigh3&& curHigh2 >= curHigh4){
if(highest < curHigh2){
highest=curHigh2;
T1=iTime(Symbol(),Period(),i);
}
}//if(curHigh2

}//for(int i=lookback+lastbar;i > lastbar+1;i--)

if(lowest != loweststock && highest != higheststock){
loweststock=lowest;
higheststock=highest;
DeletePositions();//未約定ポジションの削除
}//if(lowest != loweststock && highest != higheststock)


if(T1 < T2)
{ObjectCreate("Fibo", OBJ_FIBO, 0, T1, highest,T2,lowest);}
else{
ObjectCreate("Fibo", OBJ_FIBO, 0, T2, lowest, T1,highest);
}
string fiboobjname = "Fibo";
ObjectSet(fiboobjname, OBJPROP_FIBOLEVELS, 11);
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL, 0.0);
ObjectSetFiboDescription(fiboobjname,0,"Low %$");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+1, 0.236);
ObjectSetFiboDescription(fiboobjname,1,"23.6 %$");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+2, 0.382);
ObjectSetFiboDescription(fiboobjname,2,"38.2 %$");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+3, 0.50);
ObjectSetFiboDescription(fiboobjname,3,"50.0 %$");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+4, 0.618);
ObjectSetFiboDescription(fiboobjname,4,"61.8 %$");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+5, 0.764);
ObjectSetFiboDescription(fiboobjname,5,"76.4 %$");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+6, 1.000);
ObjectSetFiboDescription(fiboobjname,6,"High %$");


ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+7, -0.236);
ObjectSetFiboDescription(fiboobjname,7,"123.6 %$");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+8, -0.382);
ObjectSetFiboDescription(fiboobjname,8,"138.2 %$");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+9, -0.50);
ObjectSetFiboDescription(fiboobjname,9,"150.0 %$");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+10, -0.618);
ObjectSetFiboDescription(fiboobjname,10,"161.8 %$");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+11, 2.000);
ObjectSetFiboDescription(fiboobjname,11,"200.0 %$");
ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+12, 2.618);
ObjectSetFiboDescription(fiboobjname,12,"261.8 %$");
ObjectSet( "Fibo", OBJPROP_LEVELCOLOR, FibColor) ;
ObjectsRedraw();



//バーの始値でトレード可能かチェック
if(Volume[0] > 1 || IsTradeAllowed()==false) return(0);


double fibo1;//23.6
double fibo2;//38.2
double fibo3;//50
double fibo4;//61.8
double fibo5;//76.4
//Low
fibo1=(highest-lowest)*0.236+lowest;
fibo2=(highest-lowest)*0.382+lowest;
fibo3=(highest-lowest)*0.5+lowest;
fibo4=(highest-lowest)*0.618+lowest;
fibo5=(highest-lowest)*0.764+lowest;
//HI


if((highest - lowest) > 0){

int ttt=TimeCurrent()+keeptime;
string tt=TimeToStr(ttt,TIME_DATE|TIME_SECONDS);//予約有効期限
int buy1=0;
int buy2=0;
int sell1=0;
int sell2=0;

//買いシグナル1;
if(highest > Ask && Ask > fibo2){
buy1=1; }
//買いシグナル2
if(fibo2 > Ask && Ask > lowest){
buy2=1; }
//売りシグナル1
if(highest > Bid && Bid > fibo4){
sell1=1; }
//売りシグナル2
if(highest > Bid && Bid > fibo3){
sell2=1; }

Comment("sarvertime:",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS),
"\n",buy1,"\n",buy2,"\n",sell1,"\n",sell2);


//買いシグナル1;
if(buy1==1 && R_CurrentOrders(MAGIC1+magic0) == 0){
OrderSend(Symbol(),OP_BUYLIMIT,Lots,fibo2,Slippage,fibo1
-loss1,fibo3,COMMENT1,MAGIC1+magic0,ttt,Blue);
}

//買いシグナル2
if(buy2==1 && R_CurrentOrders(MAGIC2+magic0) == 0){
OrderSend(Symbol(),OP_BUYSTOP,Lots,fibo2+loss0,Slippage,fibo1
-loss2,fibo3,COMMENT2,MAGIC2+magic0,ttt,Green);
}

//売りシグナル1
if(sell1==1 && R_CurrentOrders(MAGIC3+magic0) == 0){
OrderSend(Symbol(),OP_SELLSTOP,Lots,fibo4,Slippage,fibo5+loss3,fibo3,
COMMENT3,MAGIC3+magic0,ttt,Red);
}
//売りシグナル2
if(sell2==1 && R_CurrentOrders(MAGIC4+magic0) == 0){
OrderSend(Symbol(),OP_SELLSTOP,Lots,fibo3,Slippage,fibo4+loss4,fibo2,
COMMENT4,MAGIC4+magic0,ttt,Orange);
}
}//if(highest-lowest) > Bid / fibomin)




return(0);
}
//+------------------------------------------------------------------+


改造して、儲かるようにしてくださる人が居ると嬉しい。。。(居るわけ無いか・・・)
posted by 偽トラリピ⇒トルリピ君−R at 2010-10-21 02:57
こいつが、神をも恐れぬトラリピ君の ↑ 偽者 ↑ です。

応援して下さると更に危険な分析するかも。 | Comment(8) | EA | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
米地区連銀の報告では、
「景気はゆるやかに回復」だって。
この手のコメントは2転3転・・・

しかも全く景気が良くなったと実感
もできない(−−;

聞き飽きたような言葉です・・・
Posted by カタラン at 2010年10月21日 07:09
???
???

orz
分かりません。。。
Posted by WIN at 2010年10月21日 11:13
どの期間の最高値、最低値で設定するかで、きっと成績も変わってくるのでしょうね。
といっても
短期だとEAを使う意味がないし・・・
Posted by 窮鼠 at 2010年10月21日 11:54
フィボナッチリトレースメントでググれば色々と出てきます。
FXのセミナー特にGFT系とかに行くと、教えてくれる手法なんですが、いつ聞いても、窮鼠様の言うとおりどの期間で最高値最低値を設定するかは不明なんですよね。。。
セミナー説明の時の感覚では、表示しているチャートの範囲内だけなので、短期も視野にあるのかもです。
やってみると、じり貧で資産が減って行きます。
その為に損切り幅を変えられるようにしたのですが、何とも。。。
毎日、何時から何時なら良いとかって基準があれば良いのですがね。分かりません。
Posted by TORURIPI-R at 2010年10月21日 12:16
10月13日のポン円のくるくるワイドお勧めパラメーター(青文字)ですが、バックテストを1年間やってみましたが、2月以降必ず破産します。私の設定間違いでしょうか?
でも単純に考えて、ヘッジのロング4万通貨に対してショートは2000通貨ずつ70本では14万通貨になりますので、ショートポジションが10万通貨分過多になりますので、レンジを上に抜けたとき、破産するのは必然のように思うのですが・・・・
私の勘違い、あるいは読み間違いでしょうか
Posted by 窮鼠 at 2010年10月21日 17:04
窮鼠様。
分析している内に、ポン円のレートが下がったので、勝手に買いのポジション価格を下げて、お勧めにしたのですがやばい状態になった様ですね。
くるくるワイド手法はショート過多の時にもヘッジ範囲を上抜けした時にはロングを追加すれば良いので、臨機応変に対応して下さい。
といっても、まだ、開始間時下ですので何とでも調整できると思いますが、再検証してポン円の記事は訂正しておきますね。(注意書きも加えるか。)
Posted by TORURIPI-R at 2010年10月21日 19:41
巻貝もフィボ?
Posted by 恐竜男 at 2010年10月21日 21:08
そう。巻貝もフィボ。
特にアンモナイトとかオウム貝が顕著。

10/13のGBP/JPY分析期間は初期のポンド円価格は最低値が2010/3/1頃の131.80が最低ですので、バックテストすると売りの逆指値が約定して行って必ず破産ですね。分析結果では133円以上から買ってますのでヘッジ出来ています。


Posted by TORURIPI-R at 2010年10月21日 22:02
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス: (hを入力すると前回のURLが出たりします。)

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。