2016年3月4日金曜日

RSI4RII 最適化 いいじゃないですか!!

あまり最適化は好きではないのですが、
RSIの期間20 ボーダーを30,70とシンプルにして
プロフィットを検討しました。
四連続倍倍プッシュです。
一分足の予想範囲は100(0.1円)程度と考えていたのですが
400-500の間に利益の山ができます。
正直驚きました!!
今回は530で200,000スタートです。
四連続負けがまだまだありますがいい感じです。
雇用統計が四連負けの1/3程度になりますので、
雇用統計ロック機能を付ければ、更に安定するかもしれません。

そういえば今夜も雇用統計ですね。

#property copyright "Copyright 2016/3/4,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
#define MAG 141421356
datetime TimeOld;
extern int RSIPeriod=20;
extern int RSIBL=30;
extern int RSIUL=70;
extern double Profit=530;
extern double Lots=0.01;
double TProfit;
double StopLoss;
double Entry;
double Type[4]={0,0,0,0};
double Mode;
double ModeOld;
int Slip=3;
int d;
int i;
int init(){Profit*=Point;return(0);}
int start(){

if(Time[0]!=TimeOld){TimeOld=Time[0];
if(OrdersTotal()==0){
if(iRSI(NULL,0,RSIPeriod,0,1)<=RSIBL)
{LongEntry();}
if(iRSI(NULL,0,RSIPeriod,0,1)>=RSIUL)
{ShortEntry();}
}
}
Exit();
Modify();
return(0);}

void LongEntry(){
Entry=Ask;Mode=3;ModeOld=3;StopLoss=Ask-Profit*4;
 d=OrderSend(NULL,OP_BUY    ,Lots,  Ask,    Slip,StopLoss,Ask+Profit,"Long1",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots,  Ask-Profit*1,Slip,StopLoss,Ask+Profit,"Long2",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots*2,Ask-Profit*2,Slip,StopLoss,Ask+Profit,"Long3",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots*4,Ask-Profit*3,Slip,StopLoss,Ask+Profit,"Long4",MAG,0,Red);
}
void ShortEntry(){
Entry=Bid;Mode=7;ModeOld=7;StopLoss=Bid+Profit*4;
 d=OrderSend(NULL,OP_SELL,    Lots,   Bid,    Slip,StopLoss,Bid-Profit,"Short1",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots,   Bid+Profit*1,Slip,StopLoss,Bid-Profit,"Short2",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots*2, Bid+Profit*2,Slip,StopLoss,Bid-Profit,"Short3",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots*4, Bid+Profit*3,Slip,StopLoss,Bid-Profit,"Short4",MAG,0,Blue);
}
void Modify(){
for(i=0;i<4;i++){d=OrderSelect(i,SELECT_BY_POS);Type[i]=OrderType();}
if (Type[0]==0){Mode=(Type[1]+Type[2]+Type[3])/2;}
else
{Mode=(1+Type[1]+Type[2]+Type[3])/2+2;}
if(ModeOld!=Mode)
{ModeOld=Mode;
if (Mode<4){TProfit=Entry+(Mode-2)*Profit;}else{TProfit=Entry+(6-Mode)*Profit;}
for(i=0;i<4;i++){
d=OrderSelect(i,SELECT_BY_POS);
d=OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,TProfit,0,Green);
}}}

void Exit(){
if (OrdersTotal()!=4){
    for (i=OrdersTotal()-1; i>=0; i--){
d=OrderSelect(i,SELECT_BY_POS);
d=OrderDelete(OrderTicket(),clrNONE);
}}}

0 件のコメント:

コメントを投稿