システムトレード

Burg Extrapolator:MetaTrader 5用の予測システム
MetaTrader5
Burg Extrapolator:MetaTrader 5用の予測システム

アイデアの著者: Vladimir、mq5コード著者: barabashkakvn。 Burg Extrapolatorは、Burgの手法を用いた線形予測のエキスパートアドバイザー(EA)です。線形予測は、過去のデータを基に未来の値を線形関数として求める手法です。例えば、価格範囲x[0]..x[n-1]があり、インデックスが大きいほど最近の価格に対応します。この場合、未来の価格x[n]は以下のように計算されます: x[n] = -Sum(a[i]*x[n-i], i=1..p) ここで、a[i=1..p]はモデルの比率で、pはモデルの次数を示します。Burgの手法は、最後のトレーニングデータn-pバーに対する平均二乗誤差を最小化することによって、a[]の比率を求めます。 入力パラメータ MaxRisk - 同時に行う全取引の最大リスク。 ntmax - 一方向における取引の最大数。 MinProfit - ポジションをオープンする際の最小予測利益。 MaxLoss - ポジションをクローズする際の最大予測損失。 TakeProfit - テイクプロフィットの値。 StopLoss - ストップロスの値。 TrailingStop - トレーリングストップ機能。 PastBars - 未来の値を予測するために使用する過去のバーの数。 ModelOrder - 過去のバーの数に対するBurgモデルの次数(0..1)。 UseMOM - 入力データのトレンドを除去する機能:mom(i)=log[p(i)/p(i-1)]。 UseROC - 入力データのトレンドを除去する機能:roc=100*(p(i)/p(i-1)-1)。 UseMOMとUseROCのいずれか一方のみがtrueになることができます。つまり、UseMOM=true かつ UseROC=trueは許可されていません。 多くの最適化されたエキスパートアドバイザーと同様に、Burg Extrapolatorはトレーニングバーでのみ効果的に機能します。継続的な再最適化なしでは、エキスパートアドバイザーは持続的に損失を出すことになります。

2017.11.03
MetaTrader 5用のEA「Exp_Stopreversal」の特徴と使い方
MetaTrader5
MetaTrader 5用のEA「Exp_Stopreversal」の特徴と使い方

皆さん、こんにちは!今日はMetaTrader 5で使えるEA「Exp_Stopreversal」についてお話しします。このEAは、Stopreversalインジケーターのシグナルに基づいてトレードを行います。具体的には、バーのクローズ時にカラフルなインジケーターの矢印が表示されると、シグナルが生成される仕組みです。 このエキスパートアドバイザーは、Stopreversal.ex5というコンパイル済みのインジケーターファイルを使用して動作しますので、必ず<terminal_data_folder>\MQL5\Indicatorsに保存してください。 また、TradeAlgorithms.mqhライブラリファイルを使うことで、非ゼロスプレッドを提供するブローカーでもEAを利用でき、ポジションオープン時にストップロスやテイクプロフィットを設定できるオプションがあります。ライブラリの他のバリエーションもこちらからダウンロードできます:Trade Algorithms。 以下に示すテストでは、エキスパートアドバイザーのデフォルトの入力パラメーターが使用され、ストップロスやテイクプロフィットはテスト中に設定されていませんでした。 図1. チャート上の取引例 2015年のEURUSD H6でのテスト結果は以下の通りです: 図2. テスト結果のチャート

2017.11.03
逆ポジションを自動で開く!MetaTrader 5用のEA解説
MetaTrader5
逆ポジションを自動で開く!MetaTrader 5用のEA解説

皆さん、こんにちは!今日はMetaTrader 5で使える「逆ポジション」を自動的に開くエキスパートアドバイザー(EA)についてお話しします。これを使えば、ポジションを閉じた際に自動で逆の取引が行われるのでとても便利です。 例えば、AUDUSDで0.01ロットの買いポジションを持っているとします。このポジションを手動で閉じると、逆ポジションのEAがすぐに新たなAUDUSDの売りポジションを開いてくれます。 コードの概要 このEAの全てのコードは、OnTradeTransaction関数の中に収められています。 //+------------------------------------------------------------------+ //| TradeTransaction 関数                                        | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans,                         const MqlTradeRequest &request,                         const MqlTradeResult &result)   { //--- 取引タイプを取得    ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- 取引が履歴に追加された結果である場合    if(type==TRADE_TRANSACTION_DEAL_ADD)      {       long     deal_type         =-1;       long     deal_entry        =-1;       double   deal_volume       =0.0;       string   deal_symbol       ="";       if(HistoryDealSelect(trans.deal))         {          deal_type         =HistoryDealGetInteger(trans.deal,DEAL_TYPE);          deal_entry        =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);          deal_volume       =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);          deal_symbol       =HistoryDealGetString(trans.deal,DEAL_SYMBOL);         }       else          return;       if(deal_entry==DEAL_ENTRY_OUT)         {          switch((int)deal_type)            {             case  DEAL_TYPE_BUY:                m_trade.Buy(deal_volume,deal_symbol);                break;             case  DEAL_TYPE_SELL:                m_trade.Sell(deal_volume,deal_symbol);                break;             default:                break;            }         }      }   } このコードでは、ポジションが閉じる取引(DEAL_ENTRY_OUT)を待ちます。取引が確認できたら、取引のタイプをチェックし(例えば、BUYを閉じた場合はSELLの取引が行われます)、新たにポジションを開きます。

2017.11.03
up3x1インベスター - MetaTrader 5用のEA
MetaTrader5
up3x1インベスター - MetaTrader 5用のEA

アイデア提供者: PPP, MQL5コード作成者: barabashkakvn。 このエキスパートアドバイザー(EA)は、FOREX市場における重要な経済指標の発表によるパニックに焦点を当てたトレーディングを行います。具体的には、ローソク足の高値・安値や始値・終値を分析します。 このEAのパラメーターは、H1チャートでのEUR/USDトレード向けに設定されています。推奨初期資金は1,000ドル以上です。リスクファクターを上げることで利益を増やすこともできますが、資金管理ルールに従うことが重要です。基本的にはそのままの設定で運用することをお勧めします。 入力パラメーター トレードパラメーター ストップロス(pips) - ストップロス値。 テイクプロフィット(pips) - テイクプロフィット値。 トレーリングストップ(pips) - トレーリング値。 トレーリングステップ(pips) - トレーリングステップ値。 自由証拠金からのリスク割合 - トレードあたりのリスクを自由証拠金のパーセントで設定。 減少係数(過去の取引に基づく) - 損失が出た場合に使用される係数。 履歴日数(「減少係数」が0より大きい場合のみ) - トレード履歴を分析するための日数。 差異パラメーター 高値#1 - 安値#1の差(pips) - ローソク足の高値と安値の最小値。 始値#1 - 終値#1の差(pips) - ローソク足の始値と終値の最小値。 EUR/USDのH1でテストした場合の例:

2017.11.03
Last ZZ50 - MetaTrader 5用のZigZag戦略
MetaTrader5
Last ZZ50 - MetaTrader 5用のZigZag戦略

この戦略は、ZigZagインディケーターと指値注文に基づいています。 このアイデアは、フォーラムのトピック ZigZagインディケーターに基づく戦略 - "Last ZZ50" で最初に紹介されました(ロシア語)。 アイデアの作者は、Vitaly Muzichenko、MQL5コードの作者は、Vladimir Karputovです。 "Last ZZ50"戦略の一般的な原則は次の通りです: ZigZagインディケーターでは、常に最後の2つのレイ、ABとBCを分析します。ABレイはまだ固定されておらず、変更される可能性があります(Aポイントの位置が変わる可能性があります)。 指値注文は、ABとBCレイの中間に配置されます。その理由は: ABレイの指値注文が発動することは、BCレイが示すトレンドの継続を意味します。 BCレイの指値注文が発動することは、BCレイが示すトレンドの反転を意味します。 まだ固定されていないABレイのため、指値注文は常に変更され、価格はABの中間に保たれます。 オープンポジションは、以下のルールに基づいてトレイルされます:ポジションが利益圏(手数料やスワップは考慮しません)に最低でも(トレーリングストップ + トレーリングステップ)ポイント移動するまで待ち、その後、トレーリング機能を有効にします。 ピークを探すプロセスは、このエキスパートアドバイザーに実装されています:インディケーターがチャートに追加され、A、B、Cポイントを通る3本の垂直線が描かれます:

2017.11.03
OzFx - MetaTrader 5用システムトレードの新定番
MetaTrader5
OzFx - MetaTrader 5用システムトレードの新定番

アイデアの著者: Yuri, mq5コード著者: barabashkakvn。 ポジションオープン信号の生成について説明します: Stoh_main_1 - バー#1のストキャスティクスオシレーターの値。 InpStochasticLevel - ストキャスティクスレベルの入力。 AC_1 - バー#1のアクセラレーターオシレーターの値。 ACPrev_2 - バー#2のアクセラレーターオシレーターの値。 BUY信号 - バー#1のストキャスティクスオシレーターがストキャスティクスレベルの入力より大きい かつ バー#1のアクセラレーターオシレーターがバー#2のアクセラレーターオシレーターより大きい場合。このとき、バー#1のアクセラレーターオシレーターはゼロ以上、バー#2のアクセラレーターオシレーターはゼロ未満であるべきです: if(Stoh_main_1>InpStochasticLevel && AC_1>ACPrev_2 && AC_1>0 && ACPrev_2<0 && count_buys==0) SELL信号 - バー#1のストキャスティクスオシレーターがストキャスティクスレベルの入力より小さい かつ バー#1のアクセラレーターオシレーターがバー#2のアクセラレーターオシレーターより小さい場合。このとき、バー#1のアクセラレーターオシレーターはゼロ未満で、バー#2のアクセラレーターオシレーターはゼロ以上であるべきです: if(Stoh_main_1<InpStochasticLevel && AC_1<ACPrev_2 && AC_1<0 && ACPrev_2>0 && count_sells==0) SELL信号の例: 信号を受信した際には、同じロットで5つのポジションをオープンします。最初のポジションにはストップロスとテイクプロフィットがゼロになります。以降のポジションはすべて同じストップロスを持ち、各ポジションには入力テイクプロフィット(pips単位)のステップで増加するテイクプロフィットがあります。 全シンボルでのPERIOD_D1のテスト結果:

2017.11.03
MetaTrader 5用EA「マーチン」:新しいトレーディング戦略の紹介
MetaTrader5
MetaTrader 5用EA「マーチン」:新しいトレーディング戦略の紹介

アイデアの著者 — Vladimir Khlystov、mq5コード著者 — barabashkakvn。 著者からの説明: 説明 このエキスパートアドバイザー(EA)は、フォーラムの参加者の要望に応じて作成されました。 vvx080のコメント:アイデアは、ストップオーダーのグリッドを作成することです。まず、売りと買いの2つのオーダーを設定し、どちらかがトリガーされたら、もう一方を削除します。もしトレードが不利な場合、10ポイント後にロットを倍にして反対のオーダーを開きます。再び不利になれば、20ポイント後に前回の倍のサイズの反対のオーダーを開きます。もし再びトレードがマイナスなら、30ポイント後に前回の倍のサイズの反対のオーダーを開き、これを繰り返します。 この条件下では、口座が完全に失われる可能性は非常に低いです。トレードがプラスに動いた場合は、良いトレーリングを使用して300ポイントの利益を狙います。ストップロスやテイクプロフィットは使用せず、全体の利益でトレードを閉じます。この戦略はトレンドやフラットに対しても強いです。トレンド時には総利益がトレーリングされます。 こちらがロット数と口座の予備計算です: 売り 0.1 -10p = -1 買い 0.2 -20p = -3 売り 0.4 -30p = -12 買い 0.8 -40p = -32 売り 1.6 -50p = -87 買い 3.2 -60p = -213 売り 6.4 -70p = -514 買い 12.8 -80p = -1194 売り 25.6 -90p = -2886 3000の口座は十分だと思いますが、戦略的には8番目または9番目のオーダーには到達しにくいかもしれません。何か間違っているかもしれませんが、アイデアはそのようなものです。このEAはより正確になります。 このEAはロットを増加させますが、純粋なマーチンゲールとは呼べません。さらに、EAはフラットから脱出することができ、他の多くのマーチンゲールはそれができません。 戦略を改善するためのコメントやアイデアを追加してください。ただし、「マーチンゲールは悪い」という意見は、デモで少なくともEAをチェックし、その動作原理を理解してから投稿してください。 エキスパートアドバイザーのパラメータ InpStep - ポジション間のステップ。 InpProfitClose - すべてのポジションを閉じる際の最小利益。 InpLot - ポジションのボリューム。 EURUSDでのテスト結果:

2017.11.03
ColorFisher_m11を活用したMT5用トレーディングシステムのご紹介
MetaTrader5
ColorFisher_m11を活用したMT5用トレーディングシステムのご紹介

今回は、ColorFisher_m11インジケーターをベースにしたトレーディングシステムをご紹介します。このシステムでは、ヒストグラムの色が青やピンクに変わったときにポジションをオープンするシグナルが生成されます。つまり、オシレーターが買われ過ぎや売られ過ぎのゾーンに入った際に取引を開始することになります。 ポジションをクローズする際は、ヒストグラムの色が反対に変わることでシグナルが形成されます。 このエキスパートアドバイザー(EA)を使用するためには、コンパイル済みのインジケーターファイル「ColorFisher_m11.ex5」が必要です。このファイルを<terminal_data_folder>\MQL5\Indicatorsに追加してください。 また、TradeAlgorithms.mqhライブラリファイルを利用することで、非ゼロスプレッドのブローカーでもエキスパートアドバイザーを使用可能です。さらに、ポジションオープン時にストップロスとテイクプロフィットを設定するオプションもあります。詳細なライブラリのバリエーションは、こちらのリンクからダウンロードできます: トレードアルゴリズム。 以下のテスト結果では、デフォルトの入力パラメータを使用しました。テスト中はストップロスとテイクプロフィットは設定されていませんでした。 図1. チャート上の取引例 2015年のGBPUSD H4でのテスト結果は以下の通りです: 図2. テスト結果チャート

2017.11.03
iCCI iMA:MetaTrader 5のためのシステムトレード
MetaTrader5
iCCI iMA:MetaTrader 5のためのシステムトレード

アイデアの作者は Andrey、MQL5コードの作者は barabashkakvnです。 移動平均を 商品チャネル指数データを使って計算する方法について説明します。 //--- iMAインジケーターのハンドルを作成    handle_iMA=iMA(m_symbol.Name(),Period(),15,0,MODE_EMA,handle_iCCI); //--- ハンドルが作成されていない場合    if(handle_iMA==INVALID_HANDLE)      {       //--- 失敗を伝え、エラーコードを出力       PrintFormat("iMAインジケーターのハンドル作成に失敗しました。シンボル %s/%s、エラーコード %d",                   m_symbol.Name(),                   EnumToString(Period()),                   GetLastError());       //--- インジケーターは早期に停止       return(INIT_FAILED);      } これは、商品チャネル指数ウィンドウで移動平均インジケーターを「前のインジケーターのデータ」を選択して起動するのと似ています(他のインジケーターのデータにインジケーターを適用)。 ポジションのオープンとクローズの原則: 商品チャネル指数に基づいて計算された移動平均が共通の商品チャネル指数を下に横切ると、BUYポジションがオープンされます。 商品チャネル指数に基づいて計算された移動平均が共通の商品チャネル指数を上に横切ると、SELLポジションがオープンされます。 商品チャネル指数に基づいて計算された移動平均が共通の商品チャネル指数を上に横切ると、BUYポジションがクローズされます。 商品チャネル指数に基づいて計算された移動平均が共通の商品チャネル指数を下に横切ると、SELLポジションがクローズされます。 テスト結果(EURUSD,H1):

2017.11.03
ストップロスとテイクプロフィットの活用法 - MetaTrader 5のエキスパートアドバイザー
MetaTrader5
ストップロスとテイクプロフィットの活用法 - MetaTrader 5のエキスパートアドバイザー

トレードがストップロスでクローズされた場合、ボリュームは2倍になります。一方、テイクプロフィットでクローズされた場合は、最小ボリュームが使用されます。ストップロスやテイクプロフィットが発動した後にトレードが行われたかどうかは、OnTradeTransactionを使って確認できます。 優れた列挙型である ENUM_DEAL_REASON が ビルド1625 に追加されました: ENUM_DEAL_REASON 理由の説明 ... ... DEAL_REASON_SL ストップロスが発動したために実行された取引 DEAL_REASON_TP テイクプロフィットが発動したために実行された取引 ... ... これをOnTradeTransactionで確認できます。 つまり、テイクプロフィットまたはストップロスによって取引が発生したかどうかを判断する非常にシンプルで信頼性のある方法です。 現時点(ビルド1626)では、このエキスパートアドバイザーはライブテストでのみ確認できます。チャート上で起動するか、実データでデバッグモード(MetaEditorでF5を押す)で動かす必要があります。私が使用したバイパスマニューバーは以下の通りです:       if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)          if(deal_entry==DEAL_ENTRY_OUT)            {             if(deal_reason==DEAL_REASON_SL)                ExtLot*=2.0;             else if(deal_reason==DEAL_REASON_TP)                ExtLot=m_symbol.LotsMin();            }

2017.11.03
Multi Arbitration 1.1xx - MetaTrader 5用システムトレードの進化
MetaTrader5
Multi Arbitration 1.1xx - MetaTrader 5用システムトレードの進化

今回は、Multi Arbitration 1.000の進化版である「Multi Arbitration 1.1xx」についてご紹介します。 1.000との違い: このEAは、PERIOD_M1でのみ起動します(詳細は下記の時間枠のパラメーターを参照)。 新たに2つのシンボルを同時にトレードします。2つ目のシンボルは、ExtArrSymbolsの静的配列から取得されます: string         ExtArrSymbols[20]=   {    "EURUSD","GBPUSD","USDCHF","USDJPY","USDCAD",    "AUDUSD","AUDNZD","AUDCAD","AUDCHF","AUDJPY",    "CHFJPY","EURGBP","EURAUD","EURCHF","EURJPY",    "EURNZD","EURCAD","GBPCHF","GBPJPY","CADCHF"   }; //+------------------------------------------------------------------+ //| エキスパート初期化関数                                   | //+------------------------------------------------------------------+ int OnInit() ポジションオープンの原則も変更されました: 新たなBUYポジションは、現在の価格が最も低いBUYポジションよりも低い場合のみオープンできます。 新たなSELLポジションは、現在の価格が最も高いSELLポジションよりも高い場合のみオープンできます。 新しいパラメーター時間枠を使えば、任意のチャートでEAを最適化できます。このエキスパートアドバイザーは、メインシンボルの新しいバーが出現する際に動作します(EAが稼働しているチャートのシンボル): //+------------------------------------------------------------------+ //| エキスパートティック関数                                             | //+------------------------------------------------------------------+ void OnTick()   { //--- 新バーが生まれる時間のみ作業します    static datetime prevtime=0;    datetime time_0=iTime(0,m_symbol_one.Name(),InpTimeFrame);    if(time_0==prevtime)       return;    prevtime=time_0; ここでのInpTimeFrame変数は、私たちの時間枠入力です。この時間枠の入力によって、EAを任意の時間枠で動作させることができます! EURUSDでのテスト結果:

2017.11.03
最初 前へ 23 24 25 26 27 28 29 30 31 32 33 次へ 最後