日別アーカイブ: 2015年1月31日

最大ドローダウンについて

おまえのつくる EA は「最大ドローダウンがどれも 10%超えていて使えない」とか思っておられる方がおられるかもしれませんが、それは誤解です。

たとえば本日紹介した VQ システム(クラウドフィルタ付き)ですが、

ここでのテストは10万通貨に統一しています。

もし2万通貨でテストするとこうなります。

10万通貨 2万通貨
総損益$ 23470 4693(23470 の2割)
プロフィットファクター 2.12 2.12
勝率% 44.94 4.94
最大ドローダウン% 13.11 4.71

プロフィットファクター、勝率は掛け金(ロット数)に無関係ですが、総損益は掛け金に比例します。

最大ドローダウンは掛け金とそのときの資金額に左右されます。

ブログや雑誌に最大ドローダウンが高めとか批評を書いている人がいますが、ロット数を考慮しないと意味がないです。

損益の評価も、最大ドローダウン(%)あたりの年利回り(%)で比較するのがいいと思います。これもロットに影響されますけれど。

リスクあたりのリターンということです。

*

実際に運用するときは最大ドローダウンを2回連続で食らっても資金の5%以内ですむようにロットを調整するのがお勧めです。

上の場合(元金は10000$=約120万円の口座)では2万通貨の場合2回連続最大ドローダウンを食らうと 5%を超えてしまいます。

1万通貨で行うべきですね。

最大ドローダウンを短い期間に2回くらう可能性は1%未満だと思いますので、勇気のある方は2万通貨でも結構ですが。

さらに男気のある方は10万通貨で・・・・

###

超シンプルな自動売買プログラム(EA)

以下のサンプルプログラムを元にして自分の好きな EA を作ることができます。

//
// yasciiSimple01
//

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

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

//変数の設定//
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()
  {

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

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
   OOPL = OrderOpenPrice();   
   if( Ticket_L != 0 && Ticket_L != -1 ) // 決済条件をつける場合はここに&&で続けて書く
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Blue);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   //売りポジションのエグジット
   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   OOPS = OrderOpenPrice();
   if( Ticket_S != 0 && Ticket_S != -1) // 決済条件をつける場合はここに&&で続けて書く
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Red);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if( Close[1] < Open[1] // 買いのための条件
       && ( 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,Blue);
    }

   //売りエントリー
   if( Close[1] > Open[1] //売りのための条件
       && ( 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,Red);         } 

   return(0);
  }

ちなみに上のプログラムは決済条件をつけていませんので、実行すると

足が確定したときに保有ポジションを持っていると有無を言わせず決済します。

決済条件をつけたい場合は Ticket_S != 0 && Ticket_S != –1 のところを

((Ticket_S != 0 && Ticket_S != -1) || (条件)) と変更してください。

エントリにはとりあえずの条件が付けてありますが、ここを変えるとご自分のロジックを試せます。

サンプルではとりあえずの条件として、

Close[1] < Open[1] つまり前の足が陰線なら買い、Close[1] > Open[1] つまり前の足が陽線なら売り

を しかけるようになっています。

試しに日足のチャートにて走らせますと、 「前日が上昇したときは売り、下降したときは買い」という超単純な逆張りロジック になるわけです。

*

こんな簡単なもので利益が出るわけない?

結果 USDCAD(米ドル加ドル)日足 2014/1/1-2015/1/1

利益でてまっせ。年率 91.6%も。

こういう地域関連性の強い通貨ペアは一方的なトレンドは発生しにくいですからね。

昨日上がったから今日は下げた方がいいな、と思う人が圧倒的にいるのでしょう。

結果 EURUSD(ユーロ米ドル)日足 2014/1/1-2015/1/1

利益でてまっせ。年率 197.8%。

結果 AUDUSD(豪ドル米ドル)日足 2014/1/1-2015/1/1

利益でてまっせ。年率 216%。

上は去年1年の結果ですが、今年も使えるかな?

今月(2015/1/1-1/31)のテストでは EURUSD だけ利益が出ています。

###

 

 

星降る夜のパソコン情話 / 中村 正三郎

星降る夜のパソコン情話

中村 正三郎

ビレッジセンター出版局 1996-06

売り上げランキング : 1818810

Amazonで詳しく見る

by G-Tools

★★★☆☆(ざべか・・・何もかも、みな懐かしい)

雑誌「ざべ(The Basic)」の愛読者であった私は 中村正三郎 の連載「電脳曼陀羅」を毎回楽しみにしていましたたが、そこでの Windows95 批判記事を当時の日本マイクロソフト(短小フニャ○ン)の社長の成毛眞が卑劣な圧力をかけて中止にしました。

あれからマイクロソフト(短小フニャ○ン)のことは大嫌いになったんですね。

え、Macintosh?

もっとキライ。^^

*

この本はその事件後にパソコン通信「ASAHIネット」で掲載された原稿をもと書籍化。

当時はまだインターネットがほとんど普及していなかった。

インターネットに対抗しようとしていたバカども(MSN、Nifty、PC-VAN、NEC)の末路を予言しているのはおもしろい。

しかし、内容は古い。

たかだか 20年しか経っていないのに、こんなに世の中が進歩しているのはやはりインターネットのおかげなんでしょうね。

当時 Windows3.1 で院内からこっそりインターネットに繋ぐのは大変でした。

目次

  1. まえがき
  2. 第1回 エイプリルフールニュース
  3. 第2回 初心者のための正しいパソコン購入ガイド
  4. 第3回 聞きかじり次世代パソコンOS一巡り
  5. 第4回 パフォーマがやってきた
  6. 第5回 祝朝日ネット・インターネット接続記念 80分間世界一周
  7. 第6回 個人でIP接続に挑戦した
  8. 第7回 Telentを見直したおれ
  9. 第8回 大蠢動
  10. 第9回 SCSIマジック
  11. 第10回 スモール・イズ・ビューティフル
  12. あとがき

 

関連記事

特選 星降る夜のパソコン情話―Linux狂騒曲 / 中村正三郎

無関連音楽 (星降る森 池田綾子)

###

クラウドフィルタ考案(2)

昨日の記事「クラウドフィルタ考案」で発案したクラウドフィルタですが、かけ方を変えてみました。

プライスが雲の中にあるときはエントリしないことにするわけですが、「雲の上にあるときは買いのみ、下にあるときは売りのみ」の条件をはずして、「中にあるときのみエントリしない」としてみました。

ドル円4時間足(2014/1/1 – 2015/1/1)で VQ システムにて評価します。

プロフィットファクターは前回より低下していますが、勝率はわずかにアップし、なにより最大ドローダウンが減少しています。

回数もあまり削減されていません(フィルタなしの場合は 205)。

収益はむしろアップ(フィルタなしの場合は 22017)。

効果はいいようです。

ちなみに前回(「雲の上にあるときは買いのみ、下にあるときは売りのみ」)は、 こちら。

まとめ

フィルタなし 前回(クラウド:強め) 今回(クラウド:弱め)
総損益$ 22017 13269.44 23470.13
PF 1.87 2.50 2.12
勝率% 43.41 43.37 44.94
最大ドローダウン% 14.41 32.77 13.11
最大勝ち$ 4777.44 4777.44 4777.44
最大負け$ -906 -591.79 -906
勝数 89 36 80
負数 116 47 98
取引回数 205 83 178

前回との比較では最大ドローダウンが約1/3 なので安心感が違いますね。

関連記事

クラウドフィルタ考案

クラウドフィルタ(弱め)のプログラムソース解説

1 宣言部にこれを加える。

int       Tenkan_sen=9;
int       Kijun_sen=26;
double    Senkou_span_b=52;

2 start 関数内に次の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);

3 売買条件に次の条件を加える。

&& ((Close[1]> cla1 && Close[1]>clb1)||(Close[1]< cla1 && Close[1]<clb1))

 

###