自作EAをかなりの数作ってきましたが、PC内での整理が大変になってきたため、要素をnoteに外だし。皆さんの開発ヒントになれば。 to be continued… ■インジケータ利用 A ATR B ボリンジャーバンド M 移動平均(MA) MACD R RSI S Stochastic Z ZigZag ■エントリー 発注 (応用)時間制限ありの逆指値発注 (応用)複利機能を追加してみる ■クロー
ライブラリを準備する 以下を入力してコンパイルする //+------------------------------------------------------------------+//| NewTickCheck.mqh //| 新Tickチェックライブラリ //+------
うわ、『Update切るの忘れて、シャットダウンされてる!!』とか、『あ、止まってるやん』って場合ありませんか? 定期的にLINE通知させて、生きているかどうか確認しましょー ※上記のnoteで作成したIncludeを利用するので、先に読んでくださいね heartbeat_notification.mq5 #include <WinAPI\LineNotify.mqh>//+------------------------------------------------
恋と同じで、どんなロジックも時間経過によりエッジが失われたりします。 XX分経ったら決算するロジックを作成してみました。 よかったら使ってみてね #include <Trade\Trade.mqh>CTrade mytrade;//+------------------------------------------------------------------+//| オープンしてX分経ったポジションを清算する
EAを作る際に避けて通れない、『ボラ』への配慮 EA作成を行う上で、パラメータの最適化範囲をあらかた知っておいてから進めた方が効率的じゃね?ということで作成 今回はATR(9)の測定を行っていますが、皆さんが開発に利用しているインジケータに合わせて測定してみると面白いかもしれません 紹介するEAについて ・過去9本のATRを測定する ・各時間ごとに、0~20_point,20~40_point,....,480~500_pointの結果を入れる2次変数を作る ・新し
過剰最適化避けるために、年毎のデータ取得したいじゃん? でも年毎に取得するとなると手間じゃん? やっぱり自動化したいじゃん?ってことで作成 python側のプログラム import subprocessimport configparserimport osimport shutil# EAや通貨ペアの設定ea_name = "CS_bora" # 結果を保存する名前symbol = "USDJPY" # 通貨ペアcomment = "Optimization" #
ああ、XXになったらLINE通知したい!って時に、Print("")っぽく使いたい人におすすめ まずはアクセストークンを取得してください!(ネットで調べてね) 次に以下のインクルードを作成して・・・ LineNotify.mqh (string accessToken には出力したアクセストークンを記載してください) //+------------------------------------------------------------------+//| Lin
EAってたくさん作ると、チャートの通貨種別から自動で判断してくれるようにできないかな?って思ったりしませんか あと、このMagicNumberって使ってるっけ?一覧であったらいいのに・・・とかね インクルード作ってみました、引数とかちょっと変えれば色々な使い方ができると思いますので参考になれば まずは以下のインクルードを作成して・・・ MagicNumber_search.mqh //+----------------------------------------
負け越し数が計算できていれば楽勝です。 負け越し数計算については以下を参照 //+------------------------------------------------------------------+//| D'Alembert法によるロット数の計算 |//+-------------------------------------------------------------
以下のタイミングで過去の負け越し数を計算する ①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コード一覧はコチラ
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
(筆者より) 下のリンクと併用し、事前にポジションの含み損を確認して、一定以上の損が出ていたら全てのポジションをクローズするなど ↓↓↓↓↓こちら参考↓↓↓↓↓ int MagicNumber_bid = 1111; // bidマジックナンバーint MagicNumber_ask = 1112; // askマジックナンバー OnInit() 特になし OnTick() position_remove(MagicNumber_bid); //MagicNumb
■処理の概要 指定したMagicNumberのポジションについて、総利益を出力させる (筆者コメント) 私の場合、いくら以上マイナスになったら、一旦全て決算する等に使っていたりします。 positions_profit(int trade_part)のcase 0 ~ case2の条件を変更することで、複数EAのMagicNumberを指定し、各EA毎の合計損益を表示させたり、必要に応じてポジションを決算したり応用がきくかと思います int MagicNumber_bid
//<<<<<>>>>><<<<<>>>>><< 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