古くは南北朝や先の大戦応仁の乱、新選組の時代もそうであった。
そして今朝は京都大学と京都府警の抗争
俗に言う京大ポポロ事件の京都府警側の攻撃があった。
朝から青白の機動隊バス、オレンジ灰色のガス対策車、
白黒のパトカーそして救急車が無数に走っている。
二百と有余名の機動隊が京都大学を襲撃したとのうわさが町中にながれている。
恐ろしい話である。
そんな中、四連ナンピンシステムの改良を行った。
なずけてRSI4rII (IIはうるう日の象徴の2月のIIです!!)
RSIの四連続ナンピンシステムのレート幅を変更できるようにしました。
レート幅を足に合わせることで損益はかなり改善されました。
勝率も80%(四連続ナンピンの平均化過程でのマイナスも含みます)素晴らしい数字です。
インディケータを平均やMACD、ADXもしくは複合化して勝率をさらに上げれば、
数百年ぶりにナンピンが見直される時代がやってくるかもしれません。
#property copyright "Copyright 2016/1/26,TACA"
#property link "http://mt4kyoto.blogspot.jp/"
#define MAG 1124
datetime TimeOld;
extern int RSIPeriod=16;
extern int RSIBL=33;
extern int RSIUL=75;
extern double Profit=260;
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);
}}}