*

VQ を使ったシンプルな自動売買システム

公開日: : 最終更新日:2021/06/03 マネー

VQ という摩訶不思議なインジケーターがあります。始値、終値、高値、安値のそれぞれの移動平均線を使ったもので、その TR(値幅)をも考慮するという複雑なもの。

なかなか効果的なので今でも使っている人は多いハズ。

VQ を売買のシグナルにする方法は以前多数作りましたが、ちょっと検証し直そうと思います。

まずは母体となるプロトタイプから作り直しましょう。

VQ の計算には VQ_bars.ex4 という外部ファイル(インジケーター)を借用しています。内部に取り込むとプログラムソースが長くなるからです。

動作条件ですが、買いの場合は

  1. エントリがVQ の上昇
  2. フィルタは「ショート雲より上」
  3. イクシットは VQ の下降

というシンプルなものです。

私の好みで HLトレーリングストップをつけました。

ポンド円4時間足です。

総取引回数 79 と 9ヶ月間の稼働にしては 動作しない日も多くあります。

利益 15.26%はイマイチですが、動作回数が少なめなので、フィルタを工夫すればなんとかなるかも。

勝率 44.97%、プロフィットファクター 2.21 は良好。

最大ドローダウンも 2.73%とまあまあ。連敗が少ないのは初期にはとくに助かります。

VQ をフィルタに使ってほかのトリガーをエントリに使う方法など、発展は多々考えられます。

ちょっといろいろいじってみます。

裁量トレードは、私自身がバクチ大嫌いなのであまりやりたくないのです。

こういう自動売買システムは開発しているときが一番楽しい。

科学研究に通じるものがありますよね。

プログラムソース

//
// ysVQ01a.mq4
//           VQ_bars 使用
//
//    エントリ:VQ の上昇
//    フィルタ:ショート雲より上
//    イクシット:VQ の逆転
//    HLトレーリングストップあり

//マジックナンバーの定義
#define MAGIC  42501

//パラメーターの設定//
extern double Lots = 0.1;     //取引ロット数
extern int Slip = 10;         //許容スリッページ数
extern string Comments =  “VQ01a”; //コメント

extern int       HL_Period=12;// HLトレーリングストップ用
extern double margin = 0.0 ; // 誤差
extern double ILC = 5.0 ; // 初期ロスカット

// VQ_bars 用
extern   int      Length=2;
extern   int      Method=0;
extern   int      Smoothing=0;
extern   int      Filter=0;
extern   bool     Steady =false;

extern int in_time = 10; // 取引開始時間(0以上)
extern int out_time = 20; // 取引停止時間(24以下)

int       Tenkan_sen=2;
int       Kijun_sen=3;
double    Senkou_span_b=5;

//変数の設定//
int Ticket_L = 0; //買い注文の結果をキャッチする変数
int Ticket_S = 0; //売り注文の結果をキャッチする変数
int Exit_L = 0;   //買いポジションの決済注文の結果をキャッチする変数
int Exit_S = 0;   //売りポジションの決済注文の結果をキャッチする変数
int OS1 ;
int OS2 ;
double   OOPL;
double   OOPS;

int start(){

//暴落対策(始め)

double HH1 = High[iHighest(NULL, 0, MODE_HIGH, HL_Period, 1)];
double LL1 = Low[iLowest(NULL, 0, MODE_LOW, HL_Period, 1)];

//買いポジションのエグジット
OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);
if( Bid < LL1-margin
&& ( Ticket_L != 0 && Ticket_L != -1 ))
{
Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red);
if( Exit_L ==1 ) {Ticket_L = 0;}
}

//売りポジションのエグジット
OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET);
if( Ask> HH1+margin
&& ( Ticket_S != 0 && Ticket_S != -1 ))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
if( Exit_S ==1 ) {Ticket_S = 0;}
}

//暴落対策(終わり)

if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

double dir1 = iCustom(NULL, 0, “VQ_bars”,Length,Method,Smoothing,Filter,Steady,4,1);
double dir2 = iCustom(NULL, 0, “VQ_bars”,Length,Method,Smoothing,Filter,Steady,4,2);
double cla1 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 3, Kijun_sen);
double clb1 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 4, Kijun_sen);

double HH2 = High[iLowest(NULL, 0, MODE_HIGH, HL_Period, 2)];
double LL2 = Low[iHighest(NULL, 0, MODE_LOW, HL_Period, 2)];

double lc = ILC;
if(( Digits ==3 )||(Digits ==5)) lc = lc*10.0 ;

//買いポジションのエグジット
OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);
OOPL = OrderOpenPrice();
if(    ((dir1==-1 && dir2 ==1) || ( OOPL – lc*Point >= Close[1] ) || Close[1] < LL2)
&& ( Ticket_L != 0 && Ticket_L != -1 ))
{
Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red);
if( Exit_L ==1 ) {Ticket_L = 0;}
}

//売りポジションのエグジット
OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET);
OOPS = OrderOpenPrice();
if(    ((dir1==1 && dir2 ==-1)||( OOPS + lc*Point <= Close[1] ) || Close[1] > HH2)
&& ( Ticket_S != 0 && Ticket_S != -1 ))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
if( Exit_S ==1 ) {Ticket_S = 0;}
}

//買いエントリー
if( (dir1==1 && dir2 ==-1)    && (Close[1] > cla1 && Close[1] > clb1)
&& (Hour() >= in_time && Hour() < out_time)
&& ( 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( (dir1==-1 && dir2 ==1)    && (Close[1] < cla1 && Close[1] < clb1)
&& (Hour() >= in_time && Hour() < out_time)
&& ( Ticket_S == 0 || Ticket_S == -1 )
&& ( Ticket_L == 0 || Ticket_L == -1 ))
{
Ticket_S = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,Comments,MAGIC,0,Blue);
}

return(0);

}

 

関連記事

【FX】MT4からMT5へ

MetaTrader4(MT4)と MetaTrader5(MT5)とはどちらも MetaQuote

記事を読む

ビットコインについて考えてみた

ビットコインは数ある電子通貨の一つですが、ほかのも似たようなものなので ビットコインについて

記事を読む

【FX】RSI でトレンドフォロー型 EA 作ってみる

RSI RSI というオシレーター系のインジケーターがあります。 あまりぱっとしない印象がするの

記事を読む

2023-07-24 投資メモ

前回の記事「2023-06-27 投資メモ」から約1ヶ月。 楽天証券の分ですが、現在の資産は以

記事を読む

【FX】EA Gold Stuff という EA

MQL5 フォーラムで 50$で販売されている EA Gold Stuff という EA です。

記事を読む

FXトレード 2014/1/5

うちのマックトリプルバーガーと名づけた EA(自動売買プログラム)のトレードですが、早速ビビ

記事を読む

【FX】 パラボリックSAR と一目均衡表の雲を使ったトレード法

「The Truth About Parabolic SAR | Forex Trading Str

記事を読む

NHK をぶっ潰す!

N国というイスラム国を思わせる過激(^^)政党が出現しました。 私も NHK はニュース部門と

記事を読む

【FX】ORION SCALPER という EA

ORION SCALPER という EA を見つけました。 オリオンというと、日本人が過去に作

記事を読む

【FX】定番のトレンドフォロー EA 10EMAタッチ法(2)

以前の記事「【FX】定番のトレンドフォロー EA 10EMAタッチ法」の続きです。 あちこちの

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

三田市民病院の移転問題について

本日夕方 TV で三田市民病院の移転問題を扱っていました。 初耳

富嶽三十六景 沼津

こちらの作品ですが、「富嶽三十六景 沼津」とあります。葛飾北斎

【AI】ノイズレスリサーチ

ノイズレスリサーチという AI での検索方法があるというお話。

AI を助言者(メンター)にする

漠然と AI と話していると、一般的な表面的な話に陥りがちです。

室生春秋: 前田真三写真集

★★★☆☆ 出版社 ‏ : ‎ 講談社 発売日 ‏

→もっと見る

  • 2026年8月
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31  
  • アクセスカウンター
PAGE TOP ↑