EAのトレンド指標。 - ページ 5

 
Petros Shatakhtsyan:

最も速く、最も正確な指標、それは視覚的なチャートを瞬時に処理する我々の脳である。

自分の手で取引する方法を知らない人は、収益性の高いExpert Advisorを開発することはできないでしょう。

FXは、コンピュータがその能力を活かして、例えば指紋を素早く判定したり、機械学習でロボットに歩行を教えたりするようなケースではない。

FXではそんなことは通用しない。サッカーの試合のように予想がつかないのです。

頭脳はそうですね。本当はパソコンよりかっこいいのですが、このスレッドでは頭脳ではなく、トレンド指数について議論したいと思います。

でも、私はそう思います。手作業でトレードを学び、自分のアプローチをアルゴリズム化することに成功した - 儲かるフクロウを書いた(片道)。

 
Aleksey Ivanov:

頭脳はそうですね。本当はパソコンよりカッコいいのですが、このスレッドでは脳ではなく、トレンド指数について議論したいと思います。

私はそう思っていません。私は手を使用して、私のアプローチをアルゴリズム化するために管理する方法を学んだ場合、私は利益を上げるフクロウ(方法の一つ)を書きました。

すでにお話ししたように、どの指標も現在のトレンドを判断することはできません。もう終わったことなら、誰も必要としない。

 
Alexey Volchanskiy:

ブレークイーブンで掛ければ、幸せになれる。ペトロスが正しく指摘したように、始まりと終わりを決めることは不可能です。

そして、チャンネルを突破してみてください。少なくとも、何か得られるものがあります。

とてもよくわかります。ここのトレンド指数に肯定的な意見を聞きたいのですが、今のところ否定的な意見ばかりです(真実があるのかもしれませんが)。
 
Aleksey Ivanov:

皆さん!インターネット上には、トレンドの特定に使われる何千もの指標があります。

この問題を実際に研究している現役のEA開発者に質問です 。「あなたの意見では、トレンドの始まりを確実に 検出するためにEAに使用することが本当に有望な指標は何ですか?

私見ですが、Expert Advisorでは、例えばトレンドの強さが-1から1まで 変化するようなスケールを持つ指標について(メリットとデメリットを)議論することが望まれます。

トレンドの見極めの難しさは、横ばいとトレンドの境界があいまいなことです。

この問題については、「トレーダーのリスクを軽減 する方法」https://www.mql5.com/ru/articles/4233 で一部取り上げています。

Как снизить риски трейдера
Как снизить риски трейдера
  • www.mql5.com
В первую очередь, эта статья пригодится начинающим трейдерам и аналитикам, которые работают над созданием собственной торговой системы. Надеюсь, что многие вопросы будут интересны и опытным участникам рынка. Это, например, классификация видов риска, использование свечного анализа для определения зон перекупленности/перепроданности, взаимосвязь...
 
Petros Shatakhtsyan:

最も早く、最も正確な指標、それは視覚的なチャートを瞬時に処理する我々の脳である。

自分の手で取引する方法を知らない人は、収益性の高いExpert Advisorを開発することはできないでしょう。

FXは、コンピュータがその能力を活かして、例えば指紋を素早く検出したり、機械学習でロボットに歩行を教えたりするようなケースではない。

FXではそんなことは通用しない。サッカーの試合のように、予想がつかないのです。

繰り返しになりますが、厳しく断定するのは間違っています。ATSは、市場の問題を冷静に議論し、脳が適切な解決策を再現しなければならない、という脳の活動の結果を実装しているのです。脳は何百回となく思考回路をチェックし直し、正しい判断を下しているのです。しかし、時間が限られている実際の取引では、自分ではコントロールできない潜在意識も働くため、脳がミスをすることがあり、それに気づかないことがあります。それに対して、コンピュータはATCという枠組みの中で、脳の意志を正確に、ミスなく実行する。ATCに対する他の反論はないのですか?

 
Aleksey Ivanov:
はい、よくわかりました。ここでトレンド指数に対するポジティブな意見を聞きたいところですが、今のところネガティブな意見ばかりです(真実はあるのかもしれませんが)。

ポジティブだからポジティブ...。

トレンド指標線?

トレードして、これだ(正解としよう)。

EAのシグナルは何回変更されましたか?

 
Petros Shatakhtsyan:

すでにお話したように、現在のトレンドを判断できるような指標はありません。そして、過去のものは誰も必要としない。

ご意見はよくわかります。ありがとうございます。他の意見も聞いてみたいです。

 
Aleksandr Masterskikh:

トレンドの見極めの難しさは、横ばいとトレンドの境界があいまいなことです。

この問題については、「トレーダーのリスクを減らすには」https://www.mql5.com/ru/articles/4233 の記事で一部取り上げています。

ありがとうございます。勉強してみます。 インダクタの形状で、御社のToolから何かヒントはありますか?
 
Aleksey Ivanov:
その一例をご紹介しましょう。ターキーはすでに1台作曲されています。調理する(コードを書く)のは、5分もあればできることです。本題に入りましょう。
//+------------------------------------------------------------------+
//|                                                      MAScale.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property description "Scale of moving average"
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_plots   1
//--- plot MASC
#property indicator_label1  "MASC"
#property indicator_type1   DRAW_COLOR_HISTOGRAM
#property indicator_color1  clrRoyalBlue,clrOrangeRed,clrDarkGray
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
//--- input parameters
input uint                 InpPeriod         =  14;            // Period
input ENUM_APPLIED_PRICE   InpAppliedPrice   =  PRICE_CLOSE;   // MA Applied price
input ENUM_MA_METHOD       InpMethod         =  MODE_EMA;      // MA method
input ENUM_APPLIED_PRICE   InpByPrice        =  PRICE_CLOSE;   // Distance from:
//--- indicator buffers
double         BufferMASC[];
double         BufferColors[];
double         BufferMA[];
double         BufferMA1[];
double         BufferATR[];
//--- global variables
int            period;
int            handle_ma;
int            handle_ma1;
int            handle_atr;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- set global variables
   period=int(InpPeriod<1 ? 1 : InpPeriod);
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferMASC,INDICATOR_DATA);
   SetIndexBuffer(1,BufferColors,INDICATOR_COLOR_INDEX);
   SetIndexBuffer(2,BufferATR,INDICATOR_CALCULATIONS);
   SetIndexBuffer(3,BufferMA1,INDICATOR_CALCULATIONS);
   SetIndexBuffer(4,BufferMA,INDICATOR_CALCULATIONS);
//--- setting indicator parameters
   IndicatorSetString(INDICATOR_SHORTNAME,"Scale of moving average ("+(string)period+")");
   IndicatorSetInteger(INDICATOR_DIGITS,Digits());
//--- setting buffer arrays as timeseries
   ArraySetAsSeries(BufferMASC,true);
   ArraySetAsSeries(BufferColors,true);
   ArraySetAsSeries(BufferATR,true);
   ArraySetAsSeries(BufferMA1,true);
   ArraySetAsSeries(BufferMA,true);
//--- create MA's handles
   ResetLastError();
   handle_ma1=iMA(NULL,PERIOD_CURRENT,1,0,MODE_SMA,InpByPrice);
   if(handle_ma1==INVALID_HANDLE)
     {
      Print("The iMA(1) by ",EnumToString(InpByPrice)," object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   handle_ma=iMA(NULL,PERIOD_CURRENT,period,0,InpMethod,InpAppliedPrice);
   if(handle_ma==INVALID_HANDLE)
     {
      Print("The iMA(",(string)period,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   handle_atr=iATR(NULL,PERIOD_CURRENT,period);
   if(handle_atr==INVALID_HANDLE)
     {
      Print("The iATR(",(string)period,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- Проверка и расчёт количества просчитываемых баров
   if(rates_total<fmax(period,4)) return 0;
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferMASC,EMPTY_VALUE);
      ArrayInitialize(BufferATR,0);
      ArrayInitialize(BufferMA,0);
     }
//--- Подготовка данных
   int count=(limit>1 ? rates_total : 1),copied=0;
   copied=CopyBuffer(handle_ma,0,0,count,BufferMA);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_ma1,0,0,count,BufferMA1);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_atr,0,0,count,BufferATR);
   if(copied!=count) return 0;

//--- Расчёт индикатора
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      BufferMASC[i]=(BufferATR[i]!=0 ? (BufferMA1[i]-BufferMA[i])/BufferATR[i] : 0);
      BufferColors[i]=(BufferMASC[i]>BufferMASC[i+1] ? 0 : BufferMASC[i]<BufferMASC[i+1] ? 1 : 2);
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Aleksey Ivanov:

皆さん!インターネット上には、トレンドの特定に使われる何千もの指標があります。

この問題を実際に研究している現役のEA開発者に質問です 。「あなたの意見では、トレンドの始まりを確実に 検出するためにEAに使用することが本当に有望な指標は何ですか?

Expert Advisorについては、例えばトレンドの強さが-1~1まで 変化するようなスケールを持つ指標について(メリットとデメリットを)議論することが望ましいと私は考えています。

統計的なトレンドモデル(簡単なものでも可)を決定することから始めるとよいでしょう。大きく分けて、TS列とDS列の 2つの選択肢があります。これは一見、余計なお世話に見えるかもしれませんが、後々役に立つかもしれません。例えば、調整とトレンドブレイクを見分ける能力がある程度つくかもしれません。