
10のトレンド戦略による比較分析
コンテンツ
- イントロダクション
- トレンド戦略を作成する際のタスクの定義
- トレンド戦略
- 戦略 # 1。 ヒストグラムとして描かれた RSI のADXCloud インジケーター。
- 戦略 # 2。 RVI のヒストグラムとして描画される標準偏差トレンドインジケーター。
- 戦略 # 3。 ビルウィリアムズとブルベアインジケーター。
- 戦略 # 4。 Ehlerの重心と平均価格の速度のインジケーター。
- 戦略 # 5。 複合バイナリウェーブインジケーター。
- 戦略 # 6。 LeManの複合重みづけオシレーター。
- 戦略 # 7。 価格配列をウィリアムズのAOで置き換えたドンチャンチャンネル
- 戦略 # 8。 3つのTyroneのレベルに基づいたSchaffオシレーター。
- 戦略 # 9。 ヒストグラムとして描画されたケルトナーチャネルと、雲として描かれた iTrend インジケーター。
- 戦略 # 10。 平均変化価格のモメンタムとMAファンFigurelliSeries。
- テスト
- 結論
- 結論
イントロダクション
順張りは、外国為替相場で人気があります。 このアイデアは、良いエントリポイントを見つけるために、強力な一方向の動きを決定することにあります。またその終わりを決定することも重要です。 この記事では、直接または間接的にトレンドを決定するテクニカルツールを選択しました。 これらのツールに基づいて、10のトレーディング戦略をMT5のEAにしました。また、これらのEAの結果を踏まえ、各取引戦略の長所と短所を分析し、その性能を比較しました。 この記事の目的は、トレンドの強い点、弱い点について最大限に可能な情報を提供することです。 他のトレンドは、記事MQL5でトレンドを発見する方法にあります。
トレンド戦略を作成する際のタスクの定義
一見、トレンド戦略を開発することは困難な作業ではないと思われるかもしれません。 可能であれば、技術的な分析を使用してトレンドを決定する必要があります。 理論的に、このアプローチには議論の余地はありません。 しかし、いくつか問題が残ります。
図1 トレンドとレンジのゾーンの決定
タスク 1. トレンドを特定。
通常、トレンドの定義と確認には時間がかかります。 したがって、トレンドの冒頭に理想的なエントリーを行うことはできません。 図1を参照してください。 グラフ上の点の位置でエントリを決定することは不可能です。 相場に参入するための有利な場所がわかるだけです。 この領域を定義するということは、解析中にシグナルが遅れるということであり、そのトレンドを確認するために時間が必要であるという事実に基づいています。 例として、あるインジケーターはトレンドを通知し、またあるインジケーターはある程度たって確認します。 この方法には時間がかかります。 時は金なり、にもかかわらずです。 今回のケースでは利益を逃したことを意味します。
タスク 2. オープンポジションのターゲット。
トレンドを確認しました。 今、相場に参入しようとしています。 ただし、その前に、利益の目標を定義する必要があります。 利益の目標をポイント単位で設定したり、トレンド強度の予測に応じて、動的なものを使用することができます。 ここでは、サポートレベルとレジスタンスレベルを使用することができます。 しかし、このアイデアは、相場に入る前に、決済のタイミングを知るということです。 次のタスクは、これと密接につながっています。
タスク 3. トレンドの終わりを決定する。
図1を再度参照します。 次の状況を示しています。つまり、緑のエリアで相場に参入し、トレンドはレンジ領域まで続きます。 これが一時的な状態か、決済するべきかを判断する必要があります。 この場合、レンジは短く、トレンドは続きました。 なお、固定利益の戦略においては、タスク2のようにトレンドの推定に基づいて、継続時間とサイズが予測できます。
トレンド戦略
ここでは一般的な条件です。 このトレンド戦略では、あまりにも多くのダマシのシグナルがあるので、極端に小さなタイムフレームを使用しないでください。 そのため、テストには M30 から H4 の間の時間枠を使用します。
戦略 # 1: ヒストグラムとして引かれる RSI からの ADXCloud のインジケーター。
最初の戦略は、ADX インジケーター (ADXCloud) に基づいています。 このシグナルは買われ過ぎ/売られ過ぎのレベルを RSI オシレーターによって確認されます。 これは、ヒストグラムとして描かれ、RSI 値の緑のバーは、買われ過ぎゾーンを示しています。赤は売られすぎです。
パラメーター | 詳細 |
---|---|
使用インジケーター | ADXCloud |
使用インジケーター | RSIColor |
時間枠 | H1 |
買い条件 | 雲の色が赤から緑に変わり、RSIColor ヒストグラムが緑色になる。 |
売り条件 | 雲の色が緑から赤に変わり、RSIColor ヒストグラムは赤色になる。 |
決済条件 | 利確/ストップロス |
図2に、この戦略を示します。 H1 の時間枠では、いくつかの最後の方の足がトレンドとして定義されています。そのためには、決済の利益とストップロスに大きな値を使用することはお勧めしません。
図 2. トレンド戦略のエントリー条件 # 1
ここでは、この戦略に基づいて実装されたEAのコードを示します。
void OnTick() { //---EA が以前に開いた注文を確認する if(!Trade.IsOpened(Inp_MagicNum)) { //---計算のためのデータの取得 if(!GetIndValue()) return; //---買いシグナルがある場合はポジションを開く if(BuySignal()) Trade.BuyPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); //---売りシグナルがある場合は注文を開く if(SellSignal()) Trade.SellPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); } } //+------------------------------------------------------------------+ //買い条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(adx[0]>0 && adx[1]<0 && rsi1[0]==1)?true:false; } //+------------------------------------------------------------------+ //売り条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(adx[0]<0 && adx[1]>0 && rsi2[0]==1)?true:false; } //+------------------------------------------------------------------+ //インジケーターの現在の値を取得する | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(CopyBuffer(InpInd_Handle1,0,0,2,rsi1)<=0 || CopyBuffer(InpInd_Handle1,1,0,2,rsi2)<=0 || CopyBuffer(InpInd_Handle2,0,0,2,adx)<=0 )?false:true; }
戦略 # 2: 確認に使用される RVI のヒストグラムとして引かれる標準偏差のトレンドインジケーター。
この戦略は、標準偏差トレンドインジケーターと RVI オシレーターの修正に基づいています。 これらのインジケーターがどのように機能するかについて、詳しくは表のリンクをご覧ください。
パラメーター | 詳細 |
---|---|
使用インジケーター | ColorStdDev |
使用インジケーター | ColorZerolagRVI |
時間枠 | H1 |
買い条件 | ColorStdDev ヒストグラムは赤色 (強いトレンド) で、ColorZerolagRVI 雲は緑色です。 |
売り条件 | ColorStdDev ヒストグラムは赤色 (強いトレンド) で、ColorZerolagRVI 雲は赤色です。 |
決済条件 | 利確/ストップロス |
図3に、この戦略を視覚的に示します。 強い動きの領域は標準偏差を使用して決定されます。 このトレンドは、異なる期間と重みを持つ4つの標準 RVIs に基づいて、修正された RVI オシレーターによって確認されます。
図 3. トレンド戦略 # 2 のエントリー条件
このソフトウェアの実装では、強いトレンドの値は、ColorStDev の設定でフラットを経験的に決定する必要があります。 既定値を使用しますが、便宜上、[トレンドオプション] を追加して、取引するトレンドの種類 (中規模または大規模) を選択できます。 この方法では、次の3つの値を毎回再定義する必要はなく、代わりに1つだけを選択する必要があります。 H4 の時間枠で使用するため、強力なトレンドシグナルの使用は、現在の戦略に適しています。 中規模のトレンドオプションは、より高いタイムフレームでのテストに適しています。 同時に、トレンドで入るべき多くのシグナルがあることを心に留めておいてください。 従ってダマシシグナルを減らし、肯定的な結果を有するためにターゲットおよび現在の時間枠を考慮に入れることが必要です。
//---ColorStDev インジケーターパラメータ input int period = 12; //平滑化期間 stdev input ENUM_MA_METHOD MA_Method=MODE_EMA; //ヒストグラム平滑化法 input ENUM_APPLIED_PRICE applied_price=PRICE_CLOSE; //適用価格 input int MaxTrendLevel=100; //最大トレンドレベル input int MiddLeTrendLevel=40; //ミドルトレンドレベル input int FlatLevel=10; //フラットレベル input Trend TrendLevel=Maximum; //使用トレンド
この戦略は、コードに記載されています:
void OnTick() { //---EA が以前に開いた注文を確認する if(!Trade.IsOpened(Inp_MagicNum)) { //---計算のためのデータの取得 if(!GetIndValue()) return; //---買いシグナルがある場合はポジションを開く if(BuySignal()) Trade.BuyPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); //---売りシグナルがある場合は注文を開く if(SellSignal()) Trade.SellPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); } } //+------------------------------------------------------------------+ //買い条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(stdev[0]>trend && rvi_fast[0]>rvi_slow[0])?true:false; } //+------------------------------------------------------------------+ //売り条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(stdev[0]>trend && rvi_fast[0]<rvi_slow[0])?true:false; } //+------------------------------------------------------------------+ //インジケーターの現在の値を取得する | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(CopyBuffer(InpInd_Handle1,0,0,2,stdev)<=0 || CopyBuffer(InpInd_Handle2,0,0,2,rvi_fast)<=0 || CopyBuffer(InpInd_Handle2,1,0,2,rvi_slow)<=0 )?false:true; }
戦略 # 3: ビル・ウィリアムズによる AC の雲の解釈と結合ブルベアインジケーター
次の戦略では、ビルウィリアムズのアクセラレータオシレーター (ac) の雲とブルベアの解釈を試してみました。
パラメーター | 詳細 |
---|---|
使用インジケーター | Bear_Bulls_Power |
使用インジケーター | CronexAC |
時間枠 | H1 |
買い条件 | ヒストグラムは成長を示します (色がピンクから青に変わり、インジケーターの値は0未満)、CroneAC 雲は青色になります。 |
売り条件 | ヒストグラムは、ドロップ (青からピンクへの色の変化、およびインジケーターの値がゼロより大きい) を示しています。CroneAC 雲はオレンジ色です。 |
決済条件 | 利確/ストップロス |
この戦略を図4に図式で表します。 シグナルを検索する際には、ヒストグラムの初期成長を監視する必要があります。 言い換えれば、ブルがベアに置き換えられ、その後、オシレーターからのシグナルの確認を必要とする瞬間を見つける必要があります。
図4 トレンド戦略3のエントリー条件
この戦略は、異なる入力条件を使用することができます。ヒストグラムの "初期" 成長を検索するのではなく、後のシグナルを使用することができます。たとえば、インジケーターがゼロを越える場合、またはその値の符号が変更されます。 おそらく、色のヒストグラムの変更が結果に影響を与えます。 最初に説明した条件に従った戦略の実装は、以下のリストに記載されています。
void OnTick() { //---EA が以前に開いた注文を確認する if(!Trade.IsOpened(Inp_MagicNum)) { //---計算のためのデータの取得 if(!GetIndValue()) return; //---買いシグナルがある場合はポジションを開く if(BuySignal()) Trade.BuyPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); //---売りシグナルがある場合は注文を開く if(SellSignal()) Trade.SellPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); } } //+------------------------------------------------------------------+ //買い条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(ac_fast[0]>ac_slow[0] && bb_power[0]>bb_power[1] && (bb_power[0]<0 && bb_power[1]<0))?true:false; } //+------------------------------------------------------------------+ //売り条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(ac_fast[0]<ac_slow[0] && bb_power[0]<bb_power[1] && (bb_power[0]>0 && bb_power[1]>0))?true:false; } //+------------------------------------------------------------------+ //インジケーターの現在の値を取得する | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(CopyBuffer(InpInd_Handle1,0,0,2,bb_power)<=0 || CopyBuffer(InpInd_Handle2,0,0,2,ac_fast)<=0 || CopyBuffer(InpInd_Handle2,1,0,2,ac_slow)<=0 )?false:true; }
戦略 # 4: 平均価格速度のインジケーターによるEhlerの重心。
この戦略では、カラーOSMAヒストグラム (CenterOfGravityOSMA) で表されるJ.F.Ehlerの重心インジケーターを使用します。 そのシグナルは、平均価格の速度を計算するインジケーターによって確認されます。
パラメーター | 詳細 |
---|---|
使用インジケーター | CenterOfGravityOSMA |
使用インジケーター | 平均速度 |
時間枠 | H1 |
買い条件 | 重力の中心のヒストグラムは成長を示す (インジケーターの価値はゼロよりより少しである)、および平均速度の価値はしきい値の上にある (変数の前に置かれる) |
売り条件 | 重心のヒストグラムは、ドロップ (インジケーター値がゼロより大きい) を示し、平均速度値はしきい値を上回る (パラメータであらかじめ設定されています)。 |
決済条件 | 利確/ストップロス |
この戦略を図5に図式で表します。 前の戦略と同様に、ヒストグラムの初期の変更を監視し、価格の速度の確認を待ちます。
図 5. トレンド戦略のエントリー条件 # 4
戦略の実装:
void OnTick() { //---EA が以前に開いた注文を確認する if(!Trade.IsOpened(Inp_MagicNum)) { //---計算のためのデータの取得 if(!GetIndValue()) return; //---買いシグナルがある場合はポジションを開く if(BuySignal()) Trade.BuyPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); //---売りシグナルがある場合は注文を開く if(SellSignal()) Trade.SellPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); } } //+------------------------------------------------------------------+ //買い条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(avr_speed[0]>Trend_lev && cog[1]<cog[0] &&(cog[1]<0 && cog[0]<0))?true:false; } //+------------------------------------------------------------------+ //売り条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(avr_speed[0]>Trend_lev && cog[1]>cog[0] &&(cog[1]>0 && cog[0]>0))?true:false; } //+------------------------------------------------------------------+ //インジケーターの現在の値を取得する | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(CopyBuffer(InpInd_Handle1,0,0,2,cog)<=0 || CopyBuffer(InpInd_Handle2,0,0,2,avr_speed)<=0 )?false:true; }
戦略 # 5。 複合バイナリウェーブインジケーター。
最初の4つの戦略は、トレンドを示すメインインジケータと追加の確認シグナルの組み合わせを選択するモデルに基づいていました。 この戦略では、バイナリウェーブという1つのインジケーターで別のスキームベースを使用します。 一見オシレーターのように見えますが、実際には、ma、macd、osm、cci、モメンタム、rsi と adx を含む7つの指標によって生成されたシグナルです。 これは、パラメータの柔軟なフル装備のシステムです。 選択したインジケーターの標準パラメータセットに加えて、ここでは重みを使用して特定のコンポーネントの効果を表示します。
パラメーター | 詳細 |
---|---|
使用インジケーター | Binary_Wave |
時間枠 | H1 |
買い条件 | ゼロ値を上方に交差させる |
売り条件 | ゼロ値を下方に交差させる |
決済条件 | 利確/ストップロス |
この戦略に基づくエントリーの例を図6に示します。 注: h1 のための戦略を最適化するために、ソフトウェア実装の MA_Period、CCIPeriod、MOMPeriod、RSIPeriod と ADX_Period 期間のデフォルト値は、14から 10 (より速い) に変えました。 古典的な期間でテストする必要がある場合は、時間枠H3 または H4 を使用することができます。
図6トレンド戦略のエントリー条件 # 5
実装結果:
void OnTick() { //---EA が以前に開いた注文を確認する if(!Trade.IsOpened(Inp_MagicNum)) { //---計算のためのデータの取得 if(!GetIndValue()) return; //---買いシグナルがある場合はポジションを開く if(BuySignal()) Trade.BuyPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); //---売りシグナルがある場合は注文を開く if(SellSignal()) Trade.SellPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); } } //+------------------------------------------------------------------+ //買い条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(wave[0]>0 && wave[1]<0)?true:false; } //+------------------------------------------------------------------+ //売り条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(wave[0]<0 && wave[1]>0)?true:false; } //+------------------------------------------------------------------+ //インジケーターの現在の値を取得する | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(CopyBuffer(InpInd_Handle,0,0,2,wave)<=0)?false:true; }
戦略 # 6: LeManと統合Weightオシレーター。
これは、前の5つの例で使用される戦略の原則を組み合わせたものです。 システムを組み合わせて、シグナルを追加します。 4 つのインジケーターRSI, mfi の, wpr と DeMarkerの加重平滑化された合計を表す重み付きオシレーターを使用します。 このシグナルは、始値から高値と安値への距離を計算し、偏差の四分を表示するLeManによって確認されます。 指定された数では、75、50、25% の価格変更の統計情報も表示され、最大偏差を表示します。重量オシレーターのヒストグラムを監察します。
パラメーター | 詳細 |
---|---|
使用インジケーター | 重量オシレーター |
使用インジケーター | LeMan |
時間枠 | H1 |
買い条件 | 重量オシレーターが成長し、価格が偏差の四分 75% で上位レベルを破る。 |
売り条件 | 重量オシレーターが下落し、価格が偏差の四分 75% で下位レベルを破る。 |
決済条件 | 利確/ストップロス |
エントリーポイントを図7に示します。 75% のレベルは、太字の線で表示されます。 価格の終値は、これらのレベルを突破し、重量オシレーターの成長/落下の条件が満たされています。
図 7. トレンド戦略のエントリー条件 # 6
LeMan Objectiveインジケータは、描画レベルに8つのインジケーターバッファを使用します。
- Quartile 1は、例 25% のサンプルに関連して、価格引き下げの平均値に相当します。
- Quartile 2は、例の 50% でのサンプルに関連して、価格の減少の平均値に対応しています。
- Quartile 3は、例の 75% でのサンプルに関連して、価格の減少の平均値に対応しています。 これを戦略で使用します。
- Quartile 4は、平均価格値の最大偏差に対応します。
- Quartile 1は、例 25% のサンプルに関連して、価格の成長の平均値に対応しています。
- Quartile 1は、例の 50% でのサンプルに関連して価格の成長の平均値に対応しています。
- Quartile 1は、例の 75% でのサンプルに関連して価格の成長の平均値に対応しています。 これを戦略で使用します。
- Quartile 8は、平均価格値の最大偏差に対応します。
実装においては、ウェイトオシレータと終値に加えて、バッファ2と 6が必要です。
void OnTick() { //---EA が以前に開いた注文を確認する if(!Trade.IsOpened(Inp_MagicNum)) { //---計算のためのデータの取得 if(!GetIndValue()) return; //---買いシグナルがある場合はポジションを開く if(BuySignal()) Trade.BuyPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); //---売りシグナルがある場合は注文を開く if(SellSignal()) Trade.SellPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); } } //+------------------------------------------------------------------+ //買い条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(wo[0]>wo[1] && close[0]>obj_q3_b[0])?true:false; } //+------------------------------------------------------------------+ //売り条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(wo[0]<wo[1] && close[0]<obj_q3_s[0])?true:false; } //+------------------------------------------------------------------+ //インジケーターの現在の値を取得する | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(CopyBuffer(InpInd_Handle1,6,0,2,obj_q3_b)<=0 || CopyBuffer(InpInd_Handle1,2,0,2,obj_q3_s)<=0 || CopyBuffer(InpInd_Handle2,0,0,2,wo)<=0 || CopyClose(Symbol(),PERIOD_CURRENT,0,2,close)<=0 )?false:true; }
戦略 # 7: 価格をウィリアムズの ao 値に置き換えたMACDと組み合わせたドンチャンチャンネル
ドンチャンチャネルは、一方向の動きを決定するために使用されます。 チャネルブレイクアウトはトレンドの兆候として使用されます。 トレンドを確認するために、価格シリーズはビルウィリアムズの AOの値に置き換えられています。
パラメーター | 詳細 |
---|---|
使用インジケーター | チャンネルシステム |
使用インジケーター | CronexAO |
時間枠 | H1 |
買い条件 | 上部境界と CronexAO 雲の青色のブレイクアウト |
売り条件 | 下縁と CronexAO 雲のピンク色のブレイクアウト |
決済条件 | 利確/ストップロス |
図8では、このトレンド戦略がグラフィカルに表示されています。 明瞭さのために、ドンチャンチャンネルの上または下のチャンネルを破るローソク足の色を変更してインジケーターを使用してください。 CronexAO の色は、チャンネルの境界線を破るロウソクの色に一致します。
図 8. トレンド戦略のエントリー条件 # 7
トレンド戦略のエントリー条件 # 7 トレンド戦略のエントリー条件 # 7 トレンド戦略のエントリー条件 # 7
void OnTick() { //---EA が以前に開いた注文を確認する if(!Trade.IsOpened(Inp_MagicNum)) { //---計算のためのデータの取得 if(!GetIndValue()) return; //---買いシグナルがある場合はポジションを開く if(BuySignal()) Trade.BuyPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); //---売りシグナルがある場合は注文を開く if(SellSignal()) Trade.SellPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); } } //+------------------------------------------------------------------+ //買い条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(cao_fast[0]>cao_slow[0] && close[0]>dcs_up[0])?true:false; } //+------------------------------------------------------------------+ //売り条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(cao_fast[0]<cao_slow[0] && close[0]<dcs_low[0])?true:false; } //+------------------------------------------------------------------+ //インジケーターの現在の値を取得する | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(CopyBuffer(InpInd_Handle1,0,0,2,dcs_up)<=0 || CopyBuffer(InpInd_Handle1,1,0,2,dcs_low)<=0 || CopyBuffer(InpInd_Handle2,0,0,2,cao_fast)<=0 || CopyBuffer(InpInd_Handle2,1,0,2,cao_slow)<=0 || CopyClose(Symbol(),PERIOD_CURRENT,0,2,close)<=0 )?false:true; }
戦略 # 8: 3 つのTyroneレベルに基づいた確認とシャフサイクルオシレーター
この戦略は、買われ過ぎ/売られ過ぎの領域を利用した、シャフサイクルオシレーターに基づいています。 3つのTironeレベルが使用されます。 興味深い結果がより大きなタイムフレームで得られました。 H4のテスト結果
パラメーター | 詳細 |
---|---|
使用インジケーター | Schaff Trend Cycle |
使用インジケーター | Three Tirone levels |
時間枠 | H4 |
買い条件 | 現在の価格が上のTitoneレベルよりも高く、売られ過ぎゾーンで決済します。 |
売り条件 | 現在の価格が下のTitone レベルより低く、買われ過ぎゾーンで決済します。 |
決済条件 | 利確/ストップロス |
このトレンドを図9に示します。
図9 トレンド戦略のエントリー条件 # 8
この戦略では、2つのインジケーターの主要なパラメータに加えて、買われ過ぎ/売られ過ぎのレベルの数値を追加する必要がありました。また、デフォルトの20と80を使用していました。 しかし、平滑化パラメータと期間を変更しています。(図中、シャフトインジケーターの左上隅に表示されます)。 これらの設定はオプションで、既定の設定を使用したり、独自の値を設定したりできます。
//+------------------------------------------------------------------+ //| Expert Advisor input parameters | //+------------------------------------------------------------------+ input string Inp_EaComment="Strategy #8"; //EA Comment input double Inp_Lot=0.01; //Lot input MarginMode Inp_MMode=LOT; //MM input int Inp_MagicNum=1111; //Magic number input int Inp_StopLoss=400; //Stop Loss(points) input int Inp_TakeProfit=600; //利益を取る (ポイント) input int Inp_Deviation = 20; //偏差値 (ポイント) input double Overbuying=80; //Overbuying ゾーン input double Overselling=20; //売られすぎゾーン //シャフトレンドサイクルパラメータ input Smooth_Method MA_SMethod=MODE_SMMA_; //ヒストグラム平滑化法 input int Fast_XMA = 20; //高速移動平均期間 input int Slow_XMA = 30; //低速移動平均期間 input int SmPhase= 100; //移動平均平滑化パラメータ input Applied_price_ AppliedPrice=PRICE_CLOSE_; //価格定数 input int Cycle=10; //ストキャスティクスオシレーター期間
戦略の原則は次のとおりです。
void OnTick() { //---EA が以前に開いた注文を確認する if(!Trade.IsOpened(Inp_MagicNum)) { //---計算のためのデータの取得 if(!GetIndValue()) return; //---買いシグナルがある場合はポジションを開く if(BuySignal()) Trade.BuyPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); //---売りシグナルがある場合は注文を開く if(SellSignal()) Trade.SellPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); } } //+------------------------------------------------------------------+ //買い条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(schaff[1]<Overselling && schaff[0]>Overselling && close[0]>tirone_b[0])?true:false; } //+------------------------------------------------------------------+ //売り条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(schaff[1]>Overbuying && schaff[0]<Overbuying && close[0]<tirone_s[0])?true:false; } //+------------------------------------------------------------------+ //インジケーターの現在の値を取得する | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(CopyBuffer(InpInd_Handle1,0,0,2,schaff)<=0 || CopyBuffer(InpInd_Handle2,0,0,2,tirone_b)<=0 || CopyBuffer(InpInd_Handle2,2,0,2,tirone_s)<=0 || CopyClose(Symbol(),PERIOD_CURRENT,0,2,close)<=0 )?false:true; }
戦略 # 9: ヒストグラムとして描画されたケルトナーズチャネルと、雲として描かれた iTrend インジケーター。
このトレンドは、ヒストグラムとして描かれたケルトナーズチャネルに基づいて i-KlPrice を用いて同定されます。 トレンドの確認のために、雲の色と幅が現在のトレンドを特徴付けるクラウドフォームで iTrend インジケーターを使用します。 前の戦略のように、シグナルはある特定のレベルのクロスオーバーとして生成されます。 KlPrice のレベルのデフォルト値は、50および-50 です。 したがって、BuyLevel と SellLevel のパラメータを追加する必要があります。これらのレベルをクロスすると、買いまたは売りシグナルになります。
シグナルは iTrend によって確認できます。 このインジケーターでは、2行の値によって決定される雲の色を監視します。 上側のラインは、平滑化された価格値とパラメータで選択したボリンジャーバンドバンドの差です。 下のラインは、(高 + 低) と現在のローソク足の移動平均値の差を-1 で乗算したものです。
パラメーター | 詳細 |
---|---|
使用インジケーター | i-KlPrice |
使用インジケーター | iTrend |
時間枠 | H1 |
買い条件 | KlPrice ヒストグラムの値が BuyLevel より大きく、iTrend 雲が緑。 |
売り条件 | KlPrice ヒストグラムの値がSellLevel より低く、iTrend 雲がピンク。 |
決済条件 | 利確/ストップロス |
KlPrice ヒストグラムの値がSellLevel より低く、iTrend 雲がピンク。
図 10. トレンド戦略のエントリー条件 # 9
この戦略のコードです:
void OnTick() { //---EA が以前に開いた注文を確認する if(!Trade.IsOpened(Inp_MagicNum)) { //---計算のためのデータの取得 if(!GetIndValue()) return; //---買いシグナルがある場合はポジションを開く if(BuySignal()) Trade.BuyPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); //---売りシグナルがある場合は注文を開く if(SellSignal()) Trade.SellPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); } } //+------------------------------------------------------------------+ //買い条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(klprice[0]>BuyLevel && itrend_h[0]>itrend_l[0])?true:false; } //+------------------------------------------------------------------+ //売り条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(klprice[0]<SellLevel && itrend_h[0]<itrend_l[0])?true:false; } //+------------------------------------------------------------------+ //インジケーターの現在の値を取得する | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(CopyBuffer(InpInd_Handle1,0,0,2,klprice)<=0 || CopyBuffer(InpInd_Handle2,0,0,2,itrend_h)<=0 || CopyBuffer(InpInd_Handle2,1,0,2,itrend_l)<=0 )?false:true; }
戦略 # 10: 平均変化価格のモメンタムと MA ファン FigurelliSeries。
最後に、平均変化インジケーターを使用してトレンドを分析します。 ヒストグラムとしての FigurelliSeries は、モメンタムの確認に使用されます。 平均変更の基本的な値は1に等しくなります。 この値に基づいて、価格のモメンタムのシグナルが上下に行ったり来たりします。 この戦略のエントリ条件は、1の値のクロスです。 FigurelliSeries インジケーターの値が何を意味するかを理解するためには、そのアルゴリズムと入力を検討する必要があります。
//+----------------------------------------------+ //インジケーター入力パラメータ | //+----------------------------------------------+ input uint StartPeriod=6; //初期期間 input uint Step=6; //期間計算ステップ input uint Total=36; // MAのナンバー input ENUM_MA_METHOD MAType=MODE_EMA; //移動平均スムージングタイプ input ENUM_APPLIED_PRICE MAPrice=PRICE_CLOSE; //移動平均の価格時系列 input int Shift=0; //インジケーターの足の水平シフト
最初の StartPeriod (移動平均の開始期間) が設定され、その他の36移動平均の値が、プラスステップに等しい期間で指定されます。 次に、計算に使用する移動平均タイプと価格を選択します。 実際に MAのファンは、現在の終値と比較されます。 ヒストグラムの値は、終値のMAの 数の差を示しています。
//----インジケーターの計算のメインサイクル for(bar=limit; bar>=0 && !IsStopped(); bar--) { double tot_Ask=0; double tot_Bid=0; for(int count=0; count<int(Total); count++) { //----配列に新しく現われられたデータをコピー if(CopyBuffer(MA_Handle[count],0,bar,1,MA)<=0) return(RESET); if(close[bar]<MA[0]) tot_Ask++; if(close[bar]>MA[0]) tot_Bid++; } IndBuffer[bar]=tot_Bid-tot_Ask; }
----配列に新しく現われられたデータをコピー
パラメーター | 詳細 |
---|---|
使用インジケーター | Average Change |
使用インジケーター | Figurelli シリーズ |
時間枠 | H4 |
買い条件 | 平均変化がしきい値を上方に横切り、Figurelli シリーズヒストグラムの値はゼロより上。 |
売り条件 | 平均変化がしきい値を下方に横切り、Figurelli シリーズヒストグラムの値はゼロ以下。 |
決済条件 | 利確/ストップロス |
図11に、この戦略に基づく相場参入例を示します。
図 11. トレンド戦略のエントリー条件 # 10
戦略のコード:
void OnTick() { //---EA が以前に開いた注文を確認する if(!Trade.IsOpened(Inp_MagicNum)) { //---計算のためのデータの取得 if(!GetIndValue()) return; //---買いシグナルがある場合はポジションを開く if(BuySignal()) Trade.BuyPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); //---売りシグナルがある場合は注文を開く if(SellSignal()) Trade.SellPositionOpen(true,Symbol(),Inp_Lot,Inp_MMode,Inp_Deviation,Inp_StopLoss,Inp_TakeProfit,Inp_MagicNum,Inp_EaComment); } } //+------------------------------------------------------------------+ //買い条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(avr_change[1]<1 && avr_change[0]>1 && fig_series[0]>0)?true:false; } //+------------------------------------------------------------------+ //売り条件 | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(avr_change[1]>1 && avr_change[0]<1 && fig_series[0]<0)?true:false; } //+------------------------------------------------------------------+ //インジケーターの現在の値を取得する | //+------------------------------------------------------------------+ +------------------------------------------------------------------+ { return(CopyBuffer(InpInd_Handle1,0,0,2,avr_change)<=0 || CopyBuffer(InpInd_Handle2,0,0,2,fig_series)<=0 )?false:true; }
テスト
前のセクションで、10のトレンド戦略を定式化し、そのコードを準備しました。 得られた結果をテストし比較するために、同じ条件でテストモードを選択する必要があります。
- 期間: 01.01.2016 — 01.03.2017 。
- 通貨ペア: eurusd。
- 取引モード:遅延なし。 これらは、HFTではないので、遅延の影響は非常に小さくなります。
- テスト: M1 OHLC.実際のティックの事前テストはほぼ同じ結果を示しています。
- 初期証拠金: 1000 ドル。
- Leverage: 1:500.
- Server: MetaQuotes-Demo.
- Quotes: 5-digit.
ほぼすべての戦略で、決済条件は、利確/ストップロス、8戦略 H1 のトリガです。 したがって、これらの戦略のTPとSLの値を同じにして使用することができます。 600 (5 桁の引用符) にTPを設定し、 400にSLを設定しましょう。上記の条件に加えて、戦略で使用されるインジケーターのプリセットパラメータを設定することができます。
戦略のテスト # 1 (ヒストグラムとして描かれた RSI の確認と ADXCloud インジケーター)。
プリセット:
//---RSI_Color インジケーターパラメータ
input int Inp_RSIPeriod=11; //RSI 期間
input double Inp_Overbuying=70; //Overuying ゾーン
input double Inp_Overselling=30; //過大ゾーン
//---ADX_Cloud インジケーターパラメータ
input int Inp_ADXPeriod=8; //adx 期間
input double Inp_alpha1 = 0.25; //alpha1
input double Inp_alpha2 = 0.25; //alpha2
//---RSI_Color インジケーターパラメータ input int Inp_RSIPeriod=11; //RSI 期間 input double Inp_Overbuying=70; //Overuying ゾーン input double Inp_Overselling=30; //過大ゾーン //---ADX_Cloud インジケーターパラメータ input int Inp_ADXPeriod=8; //adx 期間 input double Inp_alpha1 = 0.25; //alpha1 input double Inp_alpha2 = 0.25; //alpha2
テスト結果:

図 12 戦略 #1. テスト結果
図 12 戦略 #1. テスト結果
ストラテジー # 2 のテスト: (RVI を持つヒストグラムとして描かれる標準偏差トレンドインジケーター)。
プリセット:
//---ColorStDev インジケーターパラメータ input int period = 12; //Smoothing period StDev input ENUM_MA_METHOD MA_Method=MODE_EMA; //ヒストグラム平滑化法 input ENUM_APPLIED_PRICE applied_price=PRICE_CLOSE; //適用価格 input int MaxTrendLevel=90; //最大トレンドレベル input int MiddLeTrendLevel=50; //ミドルトレンドレベル input int FlatLevel=20; //フラットレベル input Trend TrendLevel=Maximum; //使用トレンド //--- Параметры индикатора ColorZerolagRVI input uint smoothing=15; //平滑化期間 RVI input double Factor1=0.05; //重量係数 1 input int RVI_period1=14; //rvi 期間 1 input double Factor2=0.10; //重量係数 2 input int RVI_period2=28; //rvi 期間 2 input double Factor3=0.16; //重量係数 input int RVI_period3=45; //rvi 期間 3 input double Factor4=0.26; //重量係数 4 input int RVI_period4=65; //rvi 期間 4 input double Factor5=0.43; //重量係数 5 input int RVI_period5=75; //rvi 期間5
テスト結果:
図13戦略 # 2. テスト結果
戦略テスト #3 (ビル・ウィリアムズによる ACの雲の解釈と結合されたブルベアインジケーター).
プリセット:
//---Bears_Bull_power インジケーターパラメータ input Smooth_Method MA_Method1=MODE_AMA; //平均化方法 input uint Length1=12; //平均深さ input int Phase1=15; //平均パラメータ input Smooth_Method MA_Method2=MODE_ParMA; //平滑化期間 input uint Length2=5; //平滑化期間 input int Phase2=15; //スムージングの深さ input Applied_price_ IPC=PRICE_WEIGHTED_; //適応価格 input int Shift=0; //シフト //--- CronexAC indicator parameters input Smooth_Method XMA_Method=MODE_SMMA_; //平滑化法 input uint FastPeriod=9; //高速平滑化期間 input uint SlowPeriod=21; //高速平滑化期間 input int XPhase=15; //低速平滑化期間
スムージングパラメータ</s3>
図14 戦略 # 3. テスト結果
図14戦略 # 3.
プリセット:
//---CenterOfGravityOSMA インジケーターパラメータ input uint Period_=9; //---平均期間 input uint SmoothPeriod1=3; //スムージング期間1 input ENUM_MA_METHOD MA_Method_1=MODE_SMA; //平均 method1 input uint SmoothPeriod2=3; //平均 method2 input ENUM_MA_METHOD MA_Method_2=MODE_SMA; //平滑化 period2 input Applied_price_ AppliedPrice=PRICE_OPEN_; //平均法</s3> //--- Average Speed indicator parameters input int Inp_Bars=1; //日 input ENUM_APPLIED_PRICE Price=PRICE_CLOSE; //適応価格 input double Trend_lev=2; //トレンドレベル
スムージングパラメータ</s3>
トレンドレベル</s3> テスト結果
戦略のテスト # 5 (統合バイナリウェーブインジケーター)。
プリセット:
//---Binary_Wave インジケーターパラメータ input double WeightMA = 1.0; input double WeightMACD = 1.0; input double WeightOsMA = 1.0; input double WeightCCI = 1.0; input double WeightMOM = 1.0; input double WeightRSI = 1.0; input double WeightADX = 1.0; //----移動平均 input int MAPeriod=10; input ENUM_MA_METHOD MAType=MODE_EMA; input ENUM_APPLIED_PRICE MAPrice=PRICE_CLOSE; //----macd input int FastMACD = 12; input int SlowMACD = 26; input int SignalMACD = 9; input ENUM_APPLIED_PRICE PriceMACD=PRICE_CLOSE; //----macd input int FastPeriod = 12; input int SlowPeriod = 26; input int SignalPeriod = 9; input ENUM_APPLIED_PRICE OsMAPrice=PRICE_CLOSE; //---- CCI input int CCIPeriod=10; input ENUM_APPLIED_PRICE CCIPrice=PRICE_MEDIAN; //----モメンタム input int MOMPeriod=14; input ENUM_APPLIED_PRICE MOMPrice=PRICE_CLOSE; //----RSI input int RSIPeriod=14; input ENUM_APPLIED_PRICE RSIPrice=PRICE_CLOSE; //----adx input int ADXPeriod=10;
スムージングパラメータ</s3>
図16 戦略 # 5. テスト結果
戦略のテスト # 6 (LeManと複合重量オシレーター)。
プリセット:
//---レマン目標インジケーターパラメータ input int Sample=20; input int Quartile_1 = 25; input int Quartile_2 = 50; input int Quartile_3 = 75; input int Shift=0; //---レマン目標インジケーターパラメータ //----RSI input double RSIWeight=1.0; input uint RSIPeriod=14; input ENUM_APPLIED_PRICE RSIPrice=PRICE_CLOSE; //---- MFI input double MFIWeight=1.0; input uint MFIPeriod=14; input ENUM_APPLIED_VOLUME MFIVolumeType=VOLUME_TICK; //---- WPR input double WPRWeight=1.0; input uint WPRPeriod=12; //---- DeMarker input double DeMarkerWeight=1.0; input uint DeMarkerPeriod=10; //---- input Smooth_Method bMA_Method=MODE_SMMA_; input uint bLength=5; input int bPhase=100;
テスト結果:
図 17 戦略#6. テスト結果
戦略のテスト # 7(価格シリーズがウィリアムズの ao 値に置き換えられている MACD と組み合わせたドンチャンチャンネル
プリセット:
input string Inp_EaComment="Strategy #7"; //EA Comment input double Inp_Lot=0.01; //ロット input MarginMode Inp_MMode=LOT; //mm input int Inp_MagicNum=1111; //マジックナンバー input int Inp_StopLoss=400; //ストップロス (ポイント) input int Inp_TakeProfit=600; //テイクプロフィット(ポイント) input int Inp_Deviation = 20; //偏差 (ポイント) //--- Donchian Channel System indicator parameters input uint DonchianPeriod=12; //平均の期間 input Applied_Extrem Extremes=HIGH_LOW_CLOSE; //極値の種類 //---CronexAO インジケーターパラメータ input Smooth_Method XMA_Method=MODE_ParMA; //平均の方法 input uint FastPeriod=14; //高速平均化の期間 input uint SlowPeriod=25; //フロー平均の期間 input int XPhase=15; //低速平滑化期間
テスト結果:
図18 戦略 # 7. テスト結果
戦略 # 8 のテスト(3 つのTyroneレベルとシャフトレンドサイクルオシレーター)
プリセット:
input string Inp_EaComment="Strategy #8"; //ea のコメント input double Inp_Lot=0.01; //ロット input MarginMode Inp_MMode=LOT; //mm input int Inp_MagicNum=1111; //マジックナンバー input int Inp_StopLoss=400; //ストップロス (ポイント) input int Inp_TakeProfit=600; //テイクプロフィット(ポイント) input int Inp_Deviation = 20; //偏差 (ポイント) input double Overbuying=90; //Overbuying ゾーン input double Overselling=15; //Overbuying ゾーン //シャフトレンドサイクルパラメータ input Smooth_Method MA_SMethod=MODE_SMMA_; //ヒストグラムスムージングメソッド input int Fast_XMA = 20; //高速移動平均期間 input int Slow_XMA = 30; //低速移動平均期間 input int SmPhase= 100; //移動平均平滑化パラメータ input Applied_price_ AppliedPrice=PRICE_CLOSE_; //価格定数 input int Cycle=10; //ストキャスティクスオシレーター周期 //---ティレベルインジケーターパラメータ input int TirPeriod=13; //インジケーターの期間 input int Shift=0; //バー内のインジケーターの水平方向のシフト
テスト結果:
図19 戦略 # 8. テスト結果
戦略のテスト # 9 (ケルトナーズチャンネルはヒストグラムとして描画され、iTrend インジケータは雲として描かれます)。
プリセット:
input string Inp_EaComment="Strategy #9"; //ea のコメント input double Inp_Lot=0.01; //ロット input MarginMode Inp_MMode=LOT; //mm input int Inp_MagicNum=1111; //マジックナンバー input int Inp_StopLoss=400; //ストップロス (ポイント) input int Inp_TakeProfit=600; //テイクプロフィット(ポイント) input int Inp_Deviation = 20; //偏差 (ポイント) input uint BuyLevel=50; //Overbuying ゾーン input double SellLevel=-50; //Oversellingゾーン //---i-KlPrice インジケーターパラメータ input Smooth_Method MA_Method1=MODE_ParMA; //移動平均の平滑化法 input uint Length1=100; //移動平均の平滑化深さ input int Phase1=15; //移動平均平滑化パラメータ input Smooth_Method MA_Method2=MODE_SMMA_; //キャンドルサイズスムージング方式 input uint Length2=20; //ロウソクのサイズの平滑化の深さ input int Phase2=100; //キャンドルサイズスムージングパラメータ input double Deviation=2.0; //channel expansion ratio input uint Smooth=20; //インジケータースムージング期間 input Applied_price_ IPC=PRICE_TYPICAL_; //価格定数 input int Shift=0; //バー内のインジケーターの水平方向のシフト //バー内のインジケーターの水平方向のシフト</s3> input Applied_price_ Price_Type=PRICE_TYPICAL_; //---iTrend インジケーターパラメータ input uint MAPeriod=14; input ENUM_MA_METHOD MAType=MODE_EMA; input ENUM_APPLIED_PRICE MAPrice=PRICE_CLOSE; //--- Bollinger parameters input uint BBPeriod=14; input double deviation_=2.0; input ENUM_APPLIED_PRICE BBPrice=PRICE_CLOSE; input Mode BBMode=Mode_1;
テスト結果:
図20 戦略#9. テスト結果
戦略#10のテスト (平均変化価格のモメンタムと MA ファン FigurelliSeries)。
プリセット:
//--- Average Change indicator parameters input Smooth_Method MA_Method1=MODE_SMMA_; //移動平均の平滑化法 input int Length1=12; //移動平均の平滑化深さ input int Phase1=15; //移動平均平滑化パラメータ input Applied_price_ IPC1=PRICE_CLOSE_; //移動平均価格定数 input Smooth_Method MA_Method2=MODE_EMA_; //インジケータースムージング方式 input int Length2 = 5; //インジケータースムージングの深さ input int Phase2=100; //インジケータースムージングパラメータ input Applied_price_ IPC2=PRICE_CLOSE_; //平滑化のための価格定数 input double Pow=5; //power input int Shift=0; //バー内のインジケーターの水平方向のシフト //--- Indicator parameters input uint StartPeriod=6; //初期期間 input uint Step_=6; //期間計算ステップ input uint Total=36; //MAのナンバー input ENUM_MA_METHOD MAType=MODE_EMA; //MAスムージングタイプ input ENUM_APPLIED_PRICE MAPrice=PRICE_CLOSE; //MAの価格タイムシリーズ input int Shift1=0; //インジケーターの水平シフト
テスト結果:
図21 戦略#10. テスト結果
結論
次のようにテストと最適化が行われました。
- ほとんどの戦略では、総利益は、強いトレンドにおいて得られました。
- 連続した損失は、レンジ期間中に発生しました。
- いくつかの戦略では、TPとSLが固定されているために損失が発生しました。
- いくつかのケースでは、トレンドの識別が遅れていたので、時間枠を変更する必要がありました。
結論
これより下記は、この記事で開発されたEAの名前の表です。クラスとインジケーターもあります。 添付のアーカイブには、すべてのファイルが含まれています。 操作方法は、 MQL5フォルダのターミナルルートフォルダに保存するだけです。
この記事で使用したプログラム:
# |
Name |
Type |
詳細 |
---|---|---|---|
1 |
Strategy_1.mq5 |
Expert Advisor |
戦略 # 1。 ヒストグラムとして描かれた RSI のADXCloud インジケーター。 |
2 |
Strategy_2.mql5 |
Expert Advisor |
戦略 # 2。 RVI のヒストグラムとして描画される標準偏差トレンドインジケーター。 |
3 |
Strategy_3.mq5 |
Expert Advisor | 戦略 # 3。 ビルウィリアムズとブルベアインジケーター。 |
4 |
Strategy_4.mq5 |
Expert Advisor |
戦略 # 4。 Ehlerの重心と平均価格の速度のインジケーター。 |
5 |
Strategy_5.mq5 | Expert Advisor | 戦略 # 5。 複合バイナリウェーブインジケーター。 |
6 |
Strategy_6.mq5 |
Expert Advisor |
戦略 # 6。 LeManの複合重みづけオシレーター。 |
7 | Strategy_7.mq5 |
Expert Advisor |
戦略 # 7。 ドンチャンチャネル価格がウィリアムズのAOに置き換えられたMACDで複合されています。 |
8 | Strategy_8.mq5 | Expert Advisor | 戦略 # 8。 3つのTyroneのレベルに基づいたSchaffオシレーター。 |
9 | Strategy_9.mq5 | Expert Advisor | 戦略 # 9。 ヒストグラムとして描画されたケルトナーチャネルと、雲として描かれた iTrend インジケーター。 |
10 | Strategy_10.mq5 | Expert Advisor | 戦略 # 10。 平均変化価格のモメンタムとMAファンFigurelliSeries。 |
11 | TradeFunctions.mqh | Code Base | トレードのクラス |
12 | smoothalgorithms.mqh | Code Base | スムージングアルゴリズムのクラス |
13 | adxcloud.mq5 | Indicator | 戦略 #1で使用 |
14 | rsi_сolor.mq5 | Indicator | 戦略 #1で使用 |
15 | colorstddev.mq5 | Indicator | 戦略2で使用 |
16 | colorzerolagrvi.mq5 | Indicator | 戦略2で使用 |
17 | Bear_Bulls_Power.mq5 | Indicator | 戦略3で使用 |
18 | cronexao.mq5 | Indicator | 戦略3で使用 |
19 | centerofgravityosma.mq5 | Indicator | 戦略4で使用 |
20 | average_speed.mq5 | Indicator | 戦略4で使用 |
21 | binarywave.mq5 | Indicator | 戦略5で使用 |
22 | objective.mq5 | Indicator | 戦略6で使用 |
23 | WeightOscillator.mq5 | Indicator | 戦略6で使用 |
24 | donchian_channels_system.mq5 | Indicator | 戦略7で使用 |
25 | cronexao.mq5 | Indicator | 戦略7で使用 |
26 | schafftrendcycle.mq5 | Indicator | 戦略8で使用 |
27 | tirone_levels_x3.mq5 | Indicator | 戦略8で使用 |
28 | i-klprice.mq5 | Indicator | 戦略9で使用 |
29 | i_trend.mq5 | Indicator | 戦略9で使用 |
30 | averagechange.mq5 | Indicator | 戦略10で使用 |
31 | figurelliseries.mq5 | Indicator | 戦略10で使用 |
MetaQuotes Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/3074




- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索