節目のボーダーを超えると一気に伸びることがよくあります。
切りのいいところでSLやTPを入れるのは人の心
では、価格の節目を超えたところでエントリーすればいいのではないでしょうか
USDJPYの円単位が変わった時にエントリーします。
※通貨ペア縛りはありませんが5桁ペアはほとんど動かないと思います。
平均勝トレード27.63 敗トレード-7.29
総取引数が少ないのは難点ですが実に優秀です!!!(自己満足w)
ソースコードになんとなく解説を入れています。
参考になればいいのですが・・・
#property copyright "Copyright 2016/6/16,TACA"
#property link "http://mt4kyoto.blogspot.jp/"
input int MAGIC=1;//マジックナンバー シャンデリアストップで決済するので本当は不要
input int TS=10;//シャンデリアストップの幅
input double Lots=0.01;//ロット数
double S,T,O,P,N;//S:StopLoss T:エントリー価格 O:ひとつ前のエントリー価格 P:Point N:double Close[0]
int C,D,I;//C:int Close[0] D:ダミー I:ループ用BASICの時代からなぜかIを使う
void OnInit(){C=Close[0];P=Point;}//初期設定 int CにClos[0]を入れると整数だけ入るex106.541をint Cに入れるとCは106になる。
void OnTick(){N=Close[0];//ティックが動くたびにdouble NにClose[0]をいれる106.541までしっかり入る
if(OrdersTotal()==0){//ポジションを持っていない確認
if(C+1<N){C=N;E(0);}//現在の価格が基準ラインを超えるとエントリーCが106の場合107を超えるとLONG Cを107に更新
if(C-1>N){C=N;E(1);}//逆もまたしかり
}//10行目ポジション確認の閉じカッコ
else{TS();}//ポジションを持ってるときはシャンデリアストップする。
}//OnTickの閉じカッコ
void E(int B){if(B){T=N;S=T+TS*P;}else{T=Ask;S=T-TS*P;}//エントリー,E(0)はLong,E(1)はShort
D=OrderSend("",B,Lots,T,0,S,0,"",MAGIC,0,0);}//発注
void TS(){D=OrderSelect(0,0);//シャンデリア関数オーダーを選んで
if(OrderType()){if(T>N){T=N;S=T+TS*P;}}else{if(T<N){T=N;S=T-TS*P;}}//Long,Shortにあわせて価格の移動を確認し定数設定
if(T!=O){O=T;D=OrderModify(OrderTicket(),OrderOpenPrice(),S,0,0,0);}}//SLを変更
0 件のコメント:
コメントを投稿