PWAY

自作EAで生活することを目指しています

PWAY

自作EAで生活することを目指しています

最近の記事

  • 固定された記事

MQL5 記録ノート

自作EAをかなりの数作ってきましたが、PC内での整理が大変になってきたため、要素をnoteに外だし。皆さんの開発ヒントになれば。                         to be continued… ■インジケータ利用 A ATR B ボリンジャーバンド M 移動平均(MA)   MACD  R RSI  S Stochastic Z ZigZag   ■エントリー  発注  (応用)時間制限ありの逆指値発注  (応用)複利機能を追加してみる ■クロー

    • Tick更新チェックをライブラリとして利用する(Include)

      ライブラリを準備する 以下を入力してコンパイルする //+------------------------------------------------------------------+//| NewTickCheck.mqh //|     新Tickチェックライブラリ //+------

      • (応用)定期的にMT5の生存通知を行う(LINE通知)

        うわ、『Update切るの忘れて、シャットダウンされてる!!』とか、『あ、止まってるやん』って場合ありませんか? 定期的にLINE通知させて、生きているかどうか確認しましょー ※上記のnoteで作成したIncludeを利用するので、先に読んでくださいね heartbeat_notification.mq5 #include <WinAPI\LineNotify.mqh>//+------------------------------------------------

        • XX分経過したポジションをクローズする

          恋と同じで、どんなロジックも時間経過によりエッジが失われたりします。 XX分経ったら決算するロジックを作成してみました。 よかったら使ってみてね #include <Trade\Trade.mqh>CTrade mytrade;//+------------------------------------------------------------------+//| オープンしてX分経ったポジションを清算する       

        • 固定された記事

        MQL5 記録ノート

          各通貨ペア時間毎のボラを測定する

          EAを作る際に避けて通れない、『ボラ』への配慮 EA作成を行う上で、パラメータの最適化範囲をあらかた知っておいてから進めた方が効率的じゃね?ということで作成 今回はATR(9)の測定を行っていますが、皆さんが開発に利用しているインジケータに合わせて測定してみると面白いかもしれません 紹介するEAについて ・過去9本のATRを測定する ・各時間ごとに、0~20_point,20~40_point,....,480~500_pointの結果を入れる2次変数を作る ・新し

          各通貨ペア時間毎のボラを測定する

          各年毎にEAの最適化を行い、結果をファイル保存する(Pythonで実行)

          過剰最適化避けるために、年毎のデータ取得したいじゃん? でも年毎に取得するとなると手間じゃん? やっぱり自動化したいじゃん?ってことで作成 python側のプログラム import subprocessimport configparserimport osimport shutil# EAや通貨ペアの設定ea_name = "CS_bora" # 結果を保存する名前symbol = "USDJPY" # 通貨ペアcomment = "Optimization" #

          各年毎にEAの最適化を行い、結果をファイル保存する(Pythonで実行)

          LINE通知する(インクルード)

          ああ、XXになったらLINE通知したい!って時に、Print("")っぽく使いたい人におすすめ まずはアクセストークンを取得してください!(ネットで調べてね) 次に以下のインクルードを作成して・・・ LineNotify.mqh (string accessToken には出力したアクセストークンを記載してください) //+------------------------------------------------------------------+//| Lin

          LINE通知する(インクルード)

          MagicNumberを、チャートの_Symbolで特定し適用する(インクルード)

          EAってたくさん作ると、チャートの通貨種別から自動で判断してくれるようにできないかな?って思ったりしませんか あと、このMagicNumberって使ってるっけ?一覧であったらいいのに・・・とかね インクルード作ってみました、引数とかちょっと変えれば色々な使い方ができると思いますので参考になれば まずは以下のインクルードを作成して・・・ MagicNumber_search.mqh //+----------------------------------------

          MagicNumberを、チャートの_Symbolで特定し適用する(インクルード)

          ダランベール法によるLot制御を行う

          負け越し数が計算できていれば楽勝です。 負け越し数計算については以下を参照 //+------------------------------------------------------------------+//| D'Alembert法によるロット数の計算 |//+-------------------------------------------------------------

          ダランベール法によるLot制御を行う

          負け越し数を計算する

          以下のタイミングで過去の負け越し数を計算する ①EA投入時(過去3か月間を指定) ②取引成立時 int MagicNumber_bid = 1111; // bidマジックナンバーint MagicNumber_ask = 1112; // askマジックナンバーdatetime Last_lose_check_time = 0; //前回の負け越しチェック時間int global_excessive_lossed = 0; // 負け越し数 OnInit() Exce

          負け越し数を計算する

          最適化時、特定パラメータでのバックテストをスルーする

          OnInit() if(測定をパスする条件 hoge == 1 等) return(INIT_PARAMETERS_INCORRECT); MQL5コード一覧はコチラ

          最適化時、特定パラメータでのバックテストをスルーする

          MagicNumberを指定し、すべてのオーダーをクローズする

          int MagicNumber_bid = 1111; // bidマジックナンバーint MagicNumber_ask = 1112; // askマジックナンバー OnInit() 特になし OnTick() order_cancel(MagicNumber_bid); //MagicNumber_bidのオーダーをすべて削除order_cancel(MagicNumber_ask); //MagicNumber_askのオーダーをすべて削除 position

          MagicNumberを指定し、すべてのオーダーをクローズする

          MagicNumberを指定し、すべてのポジションをクローズする

          (筆者より) 下のリンクと併用し、事前にポジションの含み損を確認して、一定以上の損が出ていたら全てのポジションをクローズするなど ↓↓↓↓↓こちら参考↓↓↓↓↓ int MagicNumber_bid = 1111; // bidマジックナンバーint MagicNumber_ask = 1112; // askマジックナンバー OnInit() 特になし OnTick() position_remove(MagicNumber_bid); //MagicNumb

          MagicNumberを指定し、すべてのポジションをクローズする

          MagicNumberを指定し、ポジションの含み損益合計を出力する

          ■処理の概要 指定したMagicNumberのポジションについて、総利益を出力させる (筆者コメント) 私の場合、いくら以上マイナスになったら、一旦全て決算する等に使っていたりします。 positions_profit(int trade_part)のcase 0 ~ case2の条件を変更することで、複数EAのMagicNumberを指定し、各EA毎の合計損益を表示させたり、必要に応じてポジションを決算したり応用がきくかと思います int MagicNumber_bid

          MagicNumberを指定し、ポジションの含み損益合計を出力する

          RSI

          //<<<<<>>>>><<<<<>>>>><< RSI >><<<<<>>>>><<<<<>>>>> input group "RSI" input int RSI_tick = 14; //RSIのTick数int RSI_Handle;double RSI_Buf[]; OnInit() RSI_Handle = iRSI(_Symbol,_Period,RSI_tick,PRICE_CLOSE); OnTick() //直近Tickの値から順に格納するArra

          トレーリングストップを利用する

          ■処理の概要 価格が開始価格より、5pip有利に動いた状態で、(買いの場合)エントリー価格と前足最安値との間にSLを入れる また、前足最安値がさらに有利な位置に移動した都度、SLを引き上げる (筆者より) ポジション数が多い場合、バックテスト時、処理が非常に重くなるため、Tick更新時に作動させた方が無難 ↓↓↓↓↓こちら参考↓↓↓↓↓ //<<<<<>>>>><<<<<>>>>><< include >><<<<<>>>>><<<<<>>>>>#include <Tra

          トレーリングストップを利用する