*

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);

}

 

関連記事

超シンプルな自動売買プログラム ボリ平ドラゴン式 (その2)

以前ここで「超シンプルな自動売買プログラム(2) ボリ平ドラゴン式」でとりあげた ボリ平ドラゴン

記事を読む

超シンプルな自動売買プログラム(7) はらみ線(はらみ足)

超シンプルな自動売買プログラムとして、日本古来のローソク足での定番「はらみ足」を利用したものをご

記事を読む

【FX】Force Killer という謎EA

Force Killer という EA があります。 以前入手してちょっといじってみたものの、

記事を読む

米国債を楽天証券で買っています

ご承知のとおり最近アメリカの金利(FFR)がどんどん上がっています。 それにつれて米国債(新発

記事を読む

自分で年金

https://www.youtube.com/watch?v=I2wHPiBbjSA 上のよ

記事を読む

[FX]デイリーピボットへの回帰

FX では前日のピボット値を目安にすることがよく行われています。 上下どちらから始まっても一日

記事を読む

[FX] FX マイニング第5週

以前の記事「FX マイニング第4週 まだ復調せず」の続きで、 FX自動売買の記録です。 7/1

記事を読む

【楽天でコインを買う】記念硬貨・旧硬貨 49枚セット 8605円分

ヤフオクでなく、楽天市場の堀田商事さんから購入。 額面でなく、時価で 8605円分とい

記事を読む

【FX】Hippo Trader という EA(8)

以前の記事「【FX】Hippo Trader という EA(7)」の続きです。 この EA は

記事を読む

[FX]ロブ・ブッカーのNY Box 検証 (2)

以前の記事「ロブ・ブッカーのNY Box 検証」の続きです。 かわせ玲人さんのブログにも「ロブ

記事を読む

Message

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

ファミリーマート 濃厚デミグラスソース大きなハンバーグ

「濃厚デミグラスソース大きなハンバーグ」というファミリーマートで売

ウェスティンカフェ マイルドブレンド 200g瓶

ユニコ・ジャパンという企業の「ウェスティンカフェ マイルドブレ

【FX】exness でゴールド取引は不利?

最近気づきましたが、exness という業者でのゴールド取引が不調です

【FX】ECM、ICM、vantage のスプレッド

ECM、ICM、vantage のスプレッドを比べてみました。 左か

【FX】AXI Select 奇々怪々なエッジスコア

プロップファームの一種である AXI Select はインキュベーショ

→もっと見る

  • アクセスカウンター
PAGE TOP ↑