2016年1月26日火曜日

RSI4r 見よ!!これが四連続可変ナンピンの力だ!!

クローズ処理について四連続ナンピン可変ベットを提案しましたが、EAにしてみました。
RSIシグナル後に10pipsでクローズ。逆に動き損失が出たときはナンピン追加で追加後10pipsでクローズを四連続で行います。ロットは可変で1,1,2,4と増やします。
結果ですが15分足、715取引で勝率約80%売り買いともにいい数字です。
利益は0.01LOT(最大LOTx8必要です)で10万→利益1.9万 最大ドローダウンは3,307です。
10万円で0.02lotsまでは不足なく稼働できます。
いつもの11カ月で10万円0.07Lots利益107,100までは稼働しますが、少しハイリスクです。
※2/29ソースコードShortの演算ミスを修正データーを変更しました。



#property copyright "Copyright 2016/1/26,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
#define MAG 1124
datetime TimeOld;
extern int RSIPeriod=17;
extern int RSIBL=33;
extern int RSIUL=75;
extern double Lots=0.01;
double Profit;
double StopLoss;
double Entry;
double Type[4]={0,0,0,0};
double Mode;
double ModeOld;
int Slip=3;
int d;
int i;

int start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if(OrdersTotal()==0){
if(iRSI(NULL,1,RSIPeriod,0,1)<=RSIBL)
{LongEntry();}
if(iRSI(NULL,1,RSIPeriod,0,1)>=RSIUL)
{ShortEntry();}
}
}
Exit();
Modify();
return(0);}
void LongEntry(){
Entry=Ask;Mode=3;ModeOld=3;StopLoss=Ask-0.4;
 d=OrderSend(NULL,OP_BUY    ,Lots,  Ask,    Slip,StopLoss,Ask+0.1,"Long1",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots,  Ask-0.1,Slip,StopLoss,Ask+0.1,"Long2",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots*2,Ask-0.2,Slip,StopLoss,Ask+0.1,"Long3",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots*4,Ask-0.3,Slip,StopLoss,Ask+0.1,"Long4",MAG,0,Red);
}
void ShortEntry(){
Entry=Bid;Mode=7;ModeOld=7;StopLoss=Bid+0.4;
 d=OrderSend(NULL,OP_SELL,    Lots,   Bid,    Slip,StopLoss,Bid-0.1,"Short1",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots,   Bid+0.1,Slip,StopLoss,Bid-0.1,"Short2",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots*2, Bid+0.2,Slip,StopLoss,Bid-0.1,"Short3",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots*4, Bid+0.3,Slip,StopLoss,Bid-0.1,"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){Profit=Entry+(Mode-2)/10;}else{Profit=Entry+(6-Mode)/10;}
for(i=0;i<4;i++){
d=OrderSelect(i,SELECT_BY_POS);
d=OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,Profit,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 件のコメント:

コメントを投稿