2016年2月23日火曜日

MACD💛RSI 可変プロフィット システム

いつも思うのですが、EAのセッティング画面、
アルファベットでゴチャゴチャ変数名が出て難解です。

そこで!!
文字列にてRSI設定、MACD設定などとグループタイトルをつけてみました。
グループタイトルの値には簡単な説明
さらに今まではRSIPeriodやRSIPとしていたものをRSI期間に、
その他もわかりやすくしてみました。
FEMAは短期EMAにしようかと思ったのですがこれはこのままでw
うむ見やすくなった(自己満増?)



さて、今回は15分足一本釣りです。同時に一本しかエントリーしません。
MACDが0より上か下か、MACDがSignalより上か下かそしてRSIがどこまで伸びているかでエントリーをします。利益確定値は過去五日間の変動幅で決めています。RSI基準でロスカット!
よりたくさんの指標を使うことで精度を上げていますが、取引数は少なくなってしまいました。
5,000円スタートいつもの11か月で3,030円の利益 なかなかです
長期安定化させるにはRSIの上下線の幅を増やしてください。取引回数を増やすには逆に幅を減らしてください。



以下ソースコードです。
猫の日(2月22日 222⇒にゃんにゃんにゃん)の完成を目指していたのですが地震対策で間に合いませんでした(汗)

#property copyright "Copyright 2016/2/22,TACA@Cat Day"
#property link      "http://mt4kyoto.blogspot.jp/"
#define MAGIC 222
extern string RSI設定="RSIの期間と上下線の設定";
extern int RSI期間=23;
extern int RSI上線=71;
extern int RSI下線=32;

extern string MACD設定="FastEMA,SlowEMA,Signalの設定";
extern int FEMA=12;
extern int SEMA=26;
extern int Signal=9;

extern string 約定幅設定="<利益算定期間>日間の価格幅を<割数>で割った価格";
extern double 利益算定期間=6;
extern double 割数=1;

extern string ロットスプレッド="";
extern double Lots=0.01;
extern int Spread=5;
int d;//dummy
void start(){
if(OrdersTotal()==0){
if(iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,0,0)<0){
  if(iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,0,0)>iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,1,0)){
    if(iRSI(NULL,PERIOD_CURRENT,RSI期間,0,0)<RSI下線){EntryLong();}}}
  
if(iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,0,0)>0){
  if(iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,0,0)<iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,1,0)){
    if(iRSI(NULL,PERIOD_CURRENT,RSI期間,0,0)>RSI上線){EntryShort();}}}  
}
else
{
d=OrderSelect(0,SELECT_BY_POS);
if(OrderType()==0){
  if(iRSI(NULL,PERIOD_CURRENT,RSI期間,0,0)>35){Exit();}}
if(OrderType()==1){
  if(iRSI(NULL,PERIOD_CURRENT,RSI期間,0,0)<65){Exit();}}
}
}
void EntryLong(){if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,0,Ask+Wide(利益算定期間)/割数,"RSI&MACD L",MAGIC,0,Red);}}
void EntryShort(){if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,0,Bid-Wide(利益算定期間)/割数,"RSI&MACD S",MAGIC,0,Blue);}}
double Wide(double Wides){
double Ret=0;
for (int i=0;i<Wides;i++){
Ret+=iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i);
}
return(Ret/Wides);}
void Exit(){
d=OrderSelect(0,SELECT_BY_POS);
d=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrNONE);
}



RSI期間 29
RSI上線 73
RSI下線 33
利益は半減しますが数年放置設定です。

0 件のコメント:

コメントを投稿