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

簡単な平均足システム

平均足(コマ足)という価格表示の方法があります。

ローソク足の代わりに使うもので、トレンドがわかりやすいという特徴があります。

超シンプルな平均足システムを作ってみました。

  • エントリシグナル: 陽線の平均足が3本連続したら買い、陰線の平均足が3本連続したら売り
  • 決済シグナル: 売り待ちの際に陰線に変われば決済、買い待ちの際に陽線に変われば決済あるいは最初に決めたロスカットを割った場合

ロスカットは無意味のはずなのですが、なぜか設定値によって結果が変わります。

意外なことによけいなフィルタなしでも、そこそこいい結果。

USDJPY H4 2014/1/1-2015/1/1

 

全然だめだろうと思ったら、勝率40%、プロフィットファクター 1.40 は立派。

 

トレンドがないとまったくダメなタイプですので、トレンド用のフィルタを加えて仕上げていこうかと思います。

プログラムソース

//
// yasciiHA01.mq4
//           超シンプルな平均足システム

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

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

extern double ILC = 45 ;

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

       double HA_open1 = ( Open[2] + Close[2] ) / 2.0 ;
       double HA_close1 = ( Open[1] + Close[1] + High[1] + Low[1] ) / 4.0 ;
       double HA_open2 = ( Open[3] + Close[3] ) / 2.0 ;
       double HA_close2 = ( Open[2] + Close[2] + High[2] + Low[2] ) / 4.0 ;
       double HA_open3 = ( Open[4] + Close[4] ) / 2.0 ;
       double HA_close3 = ( Open[3] + Close[3] + High[3] + Low[3] ) / 4.0 ;

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

   //買いポジションのエグジット
    OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
    OOPL = OrderOpenPrice();

    if(    (HA_open1 > HA_close1 || ( OOPL - lc*Point >= Close[1] ) ) 
            && ( 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(    (HA_open1 < HA_close1 ||( OOPS + lc*Point <= Close[1] ) ) 
          && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if( HA_open1 < HA_close1 && HA_open2 < HA_close2 && HA_open3 < HA_close3
       && HA_close1 > HA_close2 && HA_close2 > HA_close3 
       && ( 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( HA_open1 > HA_close1 && HA_open2 > HA_close2 && HA_open3 > HA_close3
       && HA_close1 < HA_close2 && HA_close2 < HA_close3 
       && ( 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)

###

藪医者って

藪医者という言葉の語源には諸説ありますが、兵庫県の養父(やぶ)に名医がいて、インチキ医者が「養父で修行した」と言いふらしたため、逆に悪い意味になってしまったというものがあります。

藪医者にもなれない最低ランクを筍(たけのこ)医者というらしいですね。

なにかと悪評の多い公立八鹿病院も養父市にありますね。

この前TVで養父の手作り自転車レースを観たときに、「ここでの病院開業は二重の意味で難しいだろうな」と思ったことがあります。

*

最近の医療は EBM(evidence-based medicine) 全盛ですので、治療法はほとんど決まっています。

投薬量のきめ細やかなさじ加減というのも「気のせい」とか「医者の自己満足」という人もいますね。

外科では事情が異なりますが、、内科的治療ではもはや差がなかなかつけられないようになっています。

医師の力量や経験での差は問題でなくなっているような時代です。

*

じゃあ、どこで差がつくかというと、診断の段階。

うちの母方の伯母さんは2人ほど看護婦をやっていたのですが、私が高校生の頃に「頭がいいのなら医者になりなさい」と言っておりました。

「なぜ?」と訊くと「頭の悪い医者は診断が全然当たらず患者を苦しめて、最終的には逃げられてしまうのをよく見ているから」と言ってました。

「頭のいいお医者さんはすぐに診断してすぐに治療するので患者離れが早いけど、巷での評判はすぐに広まる」とも言ってました。

診断能力はいい医者の最低限必要な能力だと思うんですね。外科医は診断力よりウデがまだまだ重要視されていますが。

研修医や医学生の間でも昨今は臨床的診断能力を養う総合内科が人気です。

ついでに言うと画像診断はたいへん重要です。^^

別に万能だということではないですけど、これ一発で最終診断までいけるケースも多いわけですから。

*

英語では藪医者を quack というらしいですね。

クヮック・・・

アヒルの鳴き声のことで、うるさくごまかしてしまうサマをよく表しています。

確かに藪医者は、診断がつかずに患者から突き上げられると叫ぶしかない。

突き上げられる前から叫んでいる人も多いようですけど。

###