前回検証したエンベロープにフィルタをかけて勝率を上げたいと思います。 フィルタとは、よりエントリーする条件を限定しトレードの精度を上げることである。 今回、用いるフィルタはSMA(単純移動平均線)でエンベロープのトレード精度を上げたいと思います。 ゴールデンクロスとデッドクロスをベースにフィルタをかけたいと思います。 パラメーター設定 エンベロープの値 期間は14本を使用 シグマの値は0.1を使用 単純移動平均線の値 短期:24本(24時間) 長期:72本(72時間) エントリー・エグジットの条件 買いエントリー 1本前のローソク足の始値が下のエンベロープよりも下 1本前のローソク足の終値が下のエンベロープよりも上 短期単純移動平均線>長期単純移動平均線 売りエントリー 1本前のローソク足の始値が上のエンベロープよりも上 1本前のローソク足の終値が上のエンベロープよりも下 短期単純移動平均線<長期単純移動平均線 買いエントリーのエグジット 1本前のローソク足の終値が上のエンベロープよりも上 短期単純移動平均線<長期単純移動平均線 売りエントリーのエグジット 1本前のローソク足の終値が下のエンベロープよりも下 短期単純移動平均線>長期単純移動平均線 使用したソースコード //product omurin
//マジックナンバーの定義
#define MAGIC 1113
//Moving Averages//
extern int Fast_MA_Period=24;
extern int Slow_MA_Period=72;
extern int MA_Method=0;
extern int MA_Shift=0;
//Envelope
extern int Envelope_Period=14;
extern double Lots = 0.1; //取引ロット数
extern int Slip = 10; //許容スリッページ数
extern string Comments = “”; //コメント
//変数の設定//
int Ticket_L = 0; //買い注文の結果をキャッチする変数
int Ticket_S = 0; //売り注文の結果をキャッチする変数
int Exit_L = 0; //買いポジションの決済注文の結果をキャッチする変数
int Exit_S = 0; //売りポジションの決済注文の結果をキャッチする変数
//+——————————————————————+
//| |
//+——————————————————————+
//初期化//
//移動平均線//
double Fast_SMA=0;
double Slow_SMA=0;
//エンベロープ
double High_Envelopes=0;
double Low_Envelopes=0;
//+——————————————————————+
//| |
//+——————————————————————+
int start()
{
//移動平均線
Fast_SMA=iCustom(NULL,0,”Moving Averages”,Fast_MA_Period,MA_Shift,MA_Method,0,1);
Slow_SMA=iCustom(NULL,0,”Moving Averages”,Slow_MA_Period,MA_Shift,MA_Method,0,1);
//エンベロープ
High_Envelopes=iCustom(NULL,0,”Envelopes”,Envelope_Period,0,”Exponential”,”Close”,0.1,0,1);
Low_Envelopes=iCustom(NULL,0,”Envelopes”,Envelope_Period,0,”Exponential”,”Close”,0.1,1,1);
//買いポジションのエグジット
if((High_Envelopes)
||(Fast_SMA>Slow_SMA)
&& (Ticket_S != 0 && Ticket_S != -1))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
if(Exit_S ==1)
{
Ticket_S = 0;
}
}
//買いエントリー
if(((Low_Envelopes>Open)&&(Low_Envelopes
)
&&(Fast_SMA>Slow_SMA)
&& (Ticket_L == 0 || Ticket_L == -1)
&& (Ticket_S == 0 || Ticket_S == -1))
{
Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,Comments,MAGIC,0,Red);
}
//売りエントリー
if(((High_Envelopes))
&&(Fast_SMA