リペイントインジケータのシグナルバー番号: シグナルに使用するバーシフトは?

expforex.comのエキスパートの機能的特徴とパラメーター
レディメイド・エキスパートとプログラミング/フリーランスのメリット。
expforex.comのエキスパートの機能的特徴とパラメーター
レディメイド・エキスパートとプログラミング/フリーランスのメリット。

Forex取引およびMetaTraderのビデオサムネイル

説明

インジケーター (indicators) がどのように動作するかの例を見ていきましょう。描画するインジケーターと描画しないインジケーターに焦点を当てます。例えば、バー (Candle) インジケーターが他のインジケーターとどのように異なる動作をするかを考えてみてください。

プログラミングにおけるシグナルの違い。シフトパラメータ (shift parameter) の使用

インジケーター (indicators) がどのように機能するかをよりよく理解するために、描画インジケーター (drawing indicators) と非描画インジケーター (non-drawing indicators) の両方の例を調べることが役立ちます。

描画インジケーター (Repaint) は価格チャートに直接プロットされるものであり、非描画インジケーターは別のウィンドウに出力を表示します。?????? いいえ

描画または再描画インジケーター (Redrawing Indicators) は、取引に使用されるテクニカルツールであり、シグナル (signals) (例えば矢印)を修正したり、シグナルの方向 (signal direction) を変更することで、現在または過去のバー (bars) (キャンドル (Candles)) に対するより正確な指示を提供します。

バー = キャンドル:

Forex取引におけるバーとキャンドルの比較図

これらのインジケーター (indicators) はシグナル (signals) を再描画する能力を持っており、これは取引の誠実性の侵害および欺瞞的な行為と見なされる可能性があります。

一部のインジケーター (indicators) は視覚的な魅力を高めるために意図的にシグナル (signals) を再描画し、チャートをより美しく見せます。

他のインジケーター (indicators) は、生成するシグナルの精度と信頼性を向上させるために、数学的計算の一環として再描画を行います。

しかし、すべてのインジケーター (indicators) が0番目のバー (Bar) または現在のバー (Bar) に描画することは正常な動作です。この初期描画により、インジケーターが最新の市場データに正しく整列されます。

インジケーター (indicators) がシグナル (signals) を再描画する背後にある理由と、これが取引戦略 (trading strategies) に与える影響について探ってみましょう。

これら二つのタイプのインジケーター (indicators) 間のシグナルの違いは大きくなる可能性があるため、取引戦略 (trading strategies) をプログラムする際にはその動作を理解することが重要です。

インジケーター (indicators) の動作に影響を与える一つの方法は、シフトパラメータ (shift parameter) を使用することで、インジケーターの出力を時間的に前後にシフトさせることができます。

シフトパラメータ (shift parameter) の異なる値を試すことで、インジケーター (indicators) を取引戦略 (trading strategy) により良く整合させ、これにより市場での成功の可能性を高めることができます。

そして、当社のユニバーサルエキスパートアドバイザー (Expert Advisor) を使用したストラテジーテスター (strategy tester) によって、このようなインジケーターを確認することができます:

EA xCustomEA: iCustomインジケーター用ユニバーサルトレーディングアドバイザー。カスタムストラテジービルダー

または、当社のシミュレーターを使用したストラテジーテスター (strategy tester) で:

Forex Tester Pad はストラテジーテスター (strategy tester) 用のForex取引シミュレーターです。インジケーターを使用した取引。

序文

この記事はパートナーの依頼により執筆されました。

エキスパートアドバイザー (Expert Advisor programming) のプログラミングを注文する際、すべてのアドバイザーでシグナルバー (signal bar) を調整することができます。

一部のエキスパートアドバイザー (Expert Advisors) がインジケーター (indicators) のために正しく機能しないという苦情をオンラインで見つけることは一般的です。

これらのシグナル (signals) を詳細に説明し、逆を示します:すべてのインジケーター (indicators) は描画する (draw) ものであり、単に正しく使用する必要があります。

この記事のビデオ版 (video version) がありますが、視聴する前に、より深い理解のためにテキスト版を読むことをお勧めします。

シフト (0,1,2…..) バー (キャンドル) 番号

このパラメータは、インジケーター (indicators) がシグナルを取得するバー (Bar) の番号を表します。

エキスパートアドバイザー (Expert Advisor) を注文する際、以下のシグナル定義パラメータを指定する必要があります:シグナル後すぐに取引を開始する、またはシグナルが閉じたバー (Bar) に形成されるまで待ち、次のバー (Bar) のオープン時にのみ取引を開始する。

アルゴリズムのため、一部のインジケーター (indicators) には明確な定義があります:シグナルはどのバー (Bar) で与えられるのか?

注文の明確さと正しい実行について言及する場合、取引は閉じたバー (Bar) のみで処理される必要があります。つまり、パラメータ shift=1 (shift parameter) です。

現在のバー (Bar) でシグナルが発生した直後に即座に取引を開始する必要があり、インジケーター (indicator) がこれを許可する場合、shift=0 (shift parameter) を設定する必要があります。

エキスパートアドバイザー (Expert Advisor)

EA は当社の EA作成用テンプレート (template for writing an EA) を使用して書かれています。アドバイザー (advisor) のすべての機能はこのページに記載されています: Forexアドバイザーの機能 (Forex Advisor Functions)

パッケージは以下のリンクからダウンロードできます: シグナルバー (Signal Bar) テストパッケージ (Testing Package)

1. 移動平均インジケーター (Moving Average Indicator)

MT4ターミナルの標準インジケーターには、設定における平均期間、平均価格、および平均の種類が含まれています。

取引戦略: 平均のクロスオーバー。遅いMAと速いMAの交差。

ストラテジーコード:

double ExampleMA=iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,shift); // MA Call Example
double ExampleMA2=iMA(Symbol(),0,50,0,MODE_SMA,PRICE_CLOSE,shift); // MA Call Example
double ExampleMA23=iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,shift+1); // MA Call Example
double ExampleMA22=iMA(Symbol(),0,50,0,MODE_SMA,PRICE_CLOSE,shift+1); // MA Call Example

if(ExampleMA23<ExampleMA22 && ExampleMA>ExampleMA2) Sig=1;
if(ExampleMA23>ExampleMA22 && ExampleMA<ExampleMA2) Sig=2;

     

シフト = 0 の動作例

再描画インジケーターのシグナルバー番号:シグナルに使用するバーシフト?

シフト = 1 の動作例

移動平均インジケーター 2 - 再描画インジケーターのシグナルバー番号:シグナルに使用するバーシフト?

説明: このインジケーター (indicator) は描画しないため、任意のシフト (shift) と一緒に使用できます。

ビデオ例:

Forex取引およびMetaTraderのビデオサムネイル

2. インジケータークロス (Indicator Cross)

追加機能を備えたMAクロス戦略に基づくカスタムインジケーター (indicator)。精度を持って目立って描画します。1つのバー (Bar) でのクロスは0バー (Bar) に矢印を描画し、継続的に再描画します。

取引戦略: 矢印取引

ストラテジーコード:

int Sig=0;
  if(shift!=-1)
  {
    double UP=iCustom(Symbol(),0,"cross",0,shift);
    double DN=iCustom(Symbol(),0,"cross",1,shift);
  }
  if(shift==-1)
    for(int i=1;i<=100;i++)
    {
      UP=iCustom(Symbol(),0,"cross",0,i);
      DN=iCustom(Symbol(),0,"cross",1,i);
      if(UP!=EMPTY_VALUE || DN!=EMPTY_VALUE) break;
    }

  if(UP!=EMPTY_VALUE){Sig=1;}
  if(DN!=EMPTY_VALUE){Sig=2;}

シフト = 0 の動作例

移動平均インジケーター - 再描画インジケーターのシグナルバー番号:シグナルに使用するバーシフト?

シフト = 1 の動作例

インジケータークロス 1 - 再描画インジケーターのシグナルバー番号:シグナルに使用するバーシフト?

シフト = -1 の動作例

CurrencyPowerMeter インジケーター - 再描画インジケーターのシグナルバー番号:シグナルに使用するバーシフト?

説明: このインジケーター (indicator) は目立って描画し、開発者が意図的にシグナルを再描画します。したがって、このインジケーター (indicator) をシグナルインジケーター (signal indicator) として使用するのはリスクがあります。

ビデオ例:

Forex取引およびMetaTraderのビデオサムネイル

3. CurrencyPowerMeter インジケーター (CurrencyPowerMeter Indicator)

通貨の強さを測定するカスタムインジケーター (indicator)。このインジケーター (indicator) はオブジェクトを使用して動作するため、シフト (shift) は無関係です。このインジケーター (indicator) の取引戦略 (trading strategy) は、インジケーターバッファ (indicator buffer) ではなく、チャート上のオブジェクトの表示から値を引き出すことに基づいています。

取引戦略: 通貨強度の差異を取引

ストラテジーコード:

double EUR_HOUR[1];
  double GBP_HOUR[1];
  double AUD_HOUR[1];
  double NZD_HOUR[1];
  double USD_HOUR[1];
  double CAD_HOUR[1];
  double CHF_HOUR[1];
  double JPY_HOUR[1];

  double PervayaValuta;
  double VtorayaValuta;
  string note=" Authentication SETTINGS ==";
  string username = "";
  string password = "";
  double trend;
  string DATATRend;

  trend=iCustom(Symbol(),0,"CurrencyPowerMeter",0,0);

  EUR_HOUR[0]=StringToDouble(ObjectDescription("CPMEUR_Str_h"));
  GBP_HOUR[0]=StringToDouble(ObjectDescription("CPMGBP_Str_h"));
  AUD_HOUR[0]=StringToDouble(ObjectDescription("CPMAUD_Str_h"));
  NZD_HOUR[0]=StringToDouble(ObjectDescription("CPMNZD_Str_h"));
  USD_HOUR[0]=StringToDouble(ObjectDescription("CPMUSD_Str_h"));
  CAD_HOUR[0]=StringToDouble(ObjectDescription("CPMCAD_Str_h"));
  CHF_HOUR[0]=StringToDouble(ObjectDescription("CPMCHF_Str_h"));
  JPY_HOUR[0]=StringToDouble(ObjectDescription("CPMJPY_Str_h"));

  if(StringSubstr(Symbol(),0,3)=="USD") PervayaValuta=USD_HOUR[0];
  if(StringSubstr(Symbol(),0,3)=="GBP") PervayaValuta=GBP_HOUR[0];
  if(StringSubstr(Symbol(),0,3)=="EUR") PervayaValuta=EUR_HOUR[0];
  if(StringSubstr(Symbol(),0,3)=="AUD") PervayaValuta=AUD_HOUR[0];
  if(StringSubstr(Symbol(),0,3)=="NZD") PervayaValuta=NZD_HOUR[0];
  if(StringSubstr(Symbol(),0,3)=="CAD") PervayaValuta=CAD_HOUR[0];
  if(StringSubstr(Symbol(),0,3)=="CHF") PervayaValuta=CHF_HOUR[0];
  if(StringSubstr(Symbol(),0,3)=="JPY") PervayaValuta=JPY_HOUR[0];

  if(StringSubstr(Symbol(),3,3)=="USD") VtorayaValuta=USD_HOUR[0];
  if(StringSubstr(Symbol(),3,3)=="GBP") VtorayaValuta=GBP_HOUR[0];
  if(StringSubstr(Symbol(),3,3)=="EUR") VtorayaValuta=EUR_HOUR[0];
  if(StringSubstr(Symbol(),3,3)=="AUD") VtorayaValuta=AUD_HOUR[0];
  if(StringSubstr(Symbol(),3,3)=="NZD") VtorayaValuta=NZD_HOUR[0];
  if(StringSubstr(Symbol(),3,3)=="CAD") VtorayaValuta=CAD_HOUR[0];
  if(StringSubstr(Symbol(),3,3)=="CHF") VtorayaValuta=CHF_HOUR[0];
  if(StringSubstr(Symbol(),3,3)=="JPY") VtorayaValuta=JPY_HOUR[0];

  if(PervayaValuta - VtorayaValuta > 0) return(1);
  if(PervayaValuta - VtorayaValuta < 0) return(2);
  return(0);

動作例

インジケータークロス - 再描画インジケーターのシグナルバー番号:シグナルに使用するバーシフト?

説明: このインジケーター (indicator) はインジケーターバッファ (indicator buffer) を持たず、オブジェクトに基づいています。したがって、シグナルバー (signal bar) は重要ではありません。このようなインジケーター (indicators) はテストや最適化ができず、リアルタイムのみで動作します。

ビデオ例:

Forex取引およびMetaTraderのビデオサムネイル

4. Fiji Trend インジケーター (Fiji Trend Indicator)

MAおよびATRシグナルに基づいて矢印形式で動作するカスタムインジケーター (indicator)。インジケーター (indicator) は描画しませんが、小さなトリックを使用して、閉じたバー (Bars) からデータを取得し、現在の0バー (Bar) に矢印を配置します。これは欺瞞のイリュージョンです。

取引戦略: インジケーター (indicator) の矢印を取引

ストラテジーコード:

int Sig=0;

double DNSignal=iCustom(Symbol(),0,"Fiji Trend",3,shift); // カスタムインジケーターの呼び出し例
double UPSignal=iCustom(Symbol(),0,"Fiji Trend",2,shift); // カスタムインジケーターの呼び出し例
double DNTrend=iCustom(Symbol(),0,"Fiji Trend",1,shift); // カスタムインジケーターの呼び出し例
double UPTrend=iCustom(Symbol(),0,"Fiji Trend",0,shift); // カスタムインジケーターの呼び出し例

// 開始シグナルの指定:
if( UPSignal!=EMPTY_VALUE) Sig=1;
if( DNSignal!=EMPTY_VALUE) Sig=2;

シフト = 0 の動作例

シフト = 1 の動作例

説明: このインジケーター (indicator) は描画しません。しかし、前述のトリックを使用してシグナルを配置します。これは合理的に良好なシグナルを提供する数少ないインジケーター (indicators) の一つです。

ビデオ例:

Forex取引およびMetaTraderのビデオサムネイル

5. フィッシャーインジケーター (Fisher Indicator)

高低バー (Hi-Lo Bars) に基づいてシグナルを計算するカスタムインジケーター (indicator)。テストで示されたように描画し、閉じたバー (Bars) において3-5バー (Bars) を再描画し、ヒストグラムの形式で表示します。

取引戦略: ヒストグラム取引。ヒストグラムが0ラインをクロスするポイントで取引。

ストラテジーコード:

int Sig=0;

double DNSignal=iCustom(Symbol(),0,"Fiji Trend",3,shift); // カスタムインジケーターの呼び出し例

double Fisher1=iCustom(Symbol(),0,"fisher",0,shift);
double Fisher2=iCustom(Symbol(),0,"fisher",0,shift);

if( Fisher1>0 && Fisher2>0 ){ Sig=1; }
if( Fisher1<0 && Fisher2<0 ){ Sig=2; }

// 1 - 買い, 2 - 売り

return(Sig);

動作例

シフト = 1 の動作例

説明: このインジケーター (indicator) は描画するため、シグナルを取ることをお勧めしません。

ビデオ例:

Forex取引およびMetaTraderのビデオサムネイル

6. HMAカラーインジケーター (HMA Color Indicator)

MAに基づき、シグナルを計算するカスタムインジケーター (indicator)。

取引戦略: カラー変更取引

ストラテジーコード:

int Sig=0;

double HMARED=iCustom(Symbol(),0,"HMA Color",3,shift);
double HMAGREEN=iCustom(Symbol(),0,"HMA Color",1,shift);

double HMARED2=iCustom(Symbol(),0,"HMA Color",3,shift+1);
double HMAGREEN2=iCustom(Symbol(),0,"HMA Color",1,shift+1);

// 開始シグナルの指定:
if(HMAGREEN!=EMPTY_VALUE && HMAGREEN2==EMPTY_VALUE) Sig=1;
if(HMARED!=EMPTY_VALUE && HMARED2==EMPTY_VALUE) Sig=2;

動作例

シフト = 1 の動作例

説明: このインジケーター (indicator) は描画しません。しかし、前述のトリックを使用してシグナルを配置します。これは合理的に良好なシグナルを提供する数少ないインジケーター (indicators) の一つです。

ビデオ例:

Forex取引およびMetaTraderのビデオサムネイル

7. MACDインジケーター (MACD Indicator)

標準MTターミナルインジケーター (indicator)。

取引戦略: シグナルラインとヒストグラムの交差点で取引

ストラテジーコード:

int Sig=0;

double MACD_SIGNAL1=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,shift); // MA Call Example

double MACD_SIGNAL2=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,shift+1); // MA Call Example

double MACD_MAIN1=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,shift); // MA Call Example
double MACD_MAIN2=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,shift+1); // MA Call Example

if(MACD_SIGNAL2<MACD_MAIN2 && MACD_SIGNAL1>MACD_MAIN1) Sig=1;
if(MACD_SIGNAL2>MACD_MAIN2 && MACD_SIGNAL1<MACD_MAIN1) Sig=2;

動作例

シフト = 1 の動作例

説明: このインジケーター (indicator) は1つの閉じたバー (Bar) で再描画しないため、自由にシフト=1 (shift=1) を使用できます。

ビデオ例:

Forex取引およびMetaTraderのビデオサムネイル

8. ZIGZAG インジケーター (ZIGZAG Indicator)

標準MTターミナルインジケーター (indicator)。特定のエリアの高値と安値に基づいてトップとボトムを構築します。

取引戦略: トップとボトムの形成で取引。ポジションを持つインジケーター (indicator) での取引はお勧めしません。良好なリミット戦略です。

ストラテジーコード:

int Sig=0;

double PriceZZ1=GetExtremumZZPrice(Symbol(),0,1);
double PriceZZ2=GetExtremumZZPrice(Symbol(),0,2);

double priceUP, priceDN;

if(PriceZZ2>PriceZZ1) { priceUP=PriceZZ2; priceDN=PriceZZ1; Sig=2; }
if(PriceZZ2<PriceZZ1) { priceUP=PriceZZ1; priceDN=PriceZZ2; Sig=1; }

動作例

説明: このインジケーター (indicator) はトップとボトムを描画するため、シフト (shift) は無関係です。戦略 (strategy) の独自条件により、このインジケーター (indicator) での取引が成功します。

ビデオ例:

Forex取引およびMetaTraderのビデオサムネイル

9. BARS リクエスト時の動作 (BARS Work on Request)

標準MTターミナルのバー (Bars) に基づいて動作します。

取引戦略: バー (Bar) が強気なら買いを開き、バー (Bar) が弱気なら売りを開く。

ストラテジーコード:

int Sig=0;

if(Open[shift] < Close[shift]) Sig=1;
if(Open[shift] > Close[shift]) Sig=2;

動作例

シフト = 1 の動作例

説明: シフトパラメータ (shift parameter) の動作を完璧に示す例であり、このパラメータに基づく戦略 (strategies) を取引できる方法を示しています。

ビデオ例:

Forex取引およびMetaTraderのビデオサムネイル

結論

この有益な記事は、異なるシフトパラメータ (shift parameter) の値を使用したさまざまなインジケーター (indicators) の使用例を提供します。

各インジケーター (indicator) はユニークです;したがって、エキスパートアドバイザー (Expert Advisor) を作成する際には、インジケーター (indicator) のタイプとそのシグナル (signal) を考慮する必要があります。

プログラマーを雇ってエキスパートアドバイザー (Expert Advisor) を作成する前に、インジケーター (indicator) に再描画 (redrawing) に関する潜在的な問題がないかをまずテストすることが重要です。

これは、ロボットの取引の信頼性と効果がインジケーター (indicator) の精度に依存するため、非常に重要です。

したがって、エキスパートアドバイザー (Expert Advisor) の作成を進める前に、インジケーター (indicator) を徹底的にチェックしテストすることをお勧めします。

アドバイザー (Advisor)

EA は当社の EA作成用テンプレート (template for writing an EA) を使用して書かれています。

すべてのアドバイザー (advisor) の機能はこのページに記載されています: Forexアドバイザーの機能 (Forex Advisor Functions)

インジケーター (indicator) のアラートを作成したい場合は、当社の記事をお読みください:

質問?

質問がある場合は、ぜひお尋ねください。私たちは中身を見ずに商品を販売しません。

当社の各製品は購入前にテストすることができます。

当社の製品に対するフィードバックやご要望に感謝し、高品質の基準を維持するよう努めています。

ご愛顧いただきありがとうございます!

質問がありますか?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この記事は次の言語でもご覧いただけます: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어


     

    リスクの警告


    過去の取引実績は将来の結果を保証するものではない。

    外国為替証拠金取引には高いリスクが伴うため、すべての投資家に適しているとは限りません。

    取引ロボットを使用することはかなりのリスクを伴い、初期投資額以上の損失を被る可能性があることに注意してください。

    慎重に行動し、ご自身の財務状況を慎重に判断し、資格を有する専門家の助言を求めることをご検討ください。

    免責事項

    このウェブサイトは、あなたの体験を向上させるためにクッキーを使用しています。このウェブサイトを利用することで、当社のデータ保護方針および免責事項に同意したことになります。
    続きを読む