インパルス - ページ 32

 
Artyom Trishkin:
ここで私は思った:おそらくすべてを簡素化するためにあなたの欲求は、MAに削減し、高速にするために、そして性急な結論につながる - "それは動作しません".だから言ったじゃないですか。まず、隣り合ったダニの差を数えるんです。価格ではなく、価格差で配列を埋めていくのです。しかし、私たちはMAを一通り見ています。訂正します。

ハニー、もうずいぶん前に修理したんだ。ここで価値のないインジケーターが出ないように指導しているのです。

さて、最終的に手に入れたものについてですが。

- スピードアベレージング

価格のMAでなくとも、スピードのMAを手に入れたわけですが、その違いは何ですか?

アベレージングバグがわからない人は、よく見てください。

(5+1)/2=3 //フォールス

(1+5)/2=3 //増加する

よし、自分の頭で考えろ、数学者...。

 
new-rena:

ハニー、もうずいぶん前に修理したんだ。ここで無価値なインジケーターが出ないように指導しているのです。

さて、最終的に手に入れたものについてですが。

- スピードアベレージング

価格のMAでなくとも、スピードのMAを手に入れたわけですが、その違いは何ですか?

アベレージングバグがわからない人は、よく見てください。

(5+1)/2=3

(1+5)/2=3 //増加する

まあ、自分の頭で考えろ、数学者...。

それはちょっと口が裂けても言えませんね。失礼なことをすると、人の印象が悪くなる。

では、あなたの数式には何が入っているのか、教えてください、師匠・・・。

ZS。私はあなたの侵略を理解する - 誰かがあなたに彼らの計算を与えなかった、とあなた自身は、世界のMAK、数学者のすべてをカウントし、理解していない...でも、そんなことで人に暴力を振るうなんて......バカみたい。

 
Artyom Trishkin:

それはちょっと言いすぎだよ、君。失礼なことをすると、人の印象が悪くなる。

では、あなたの数式が何に対してのものなのか、教えてください。

ZS。私はあなたの侵略を理解する - 誰かがあなたに彼らの計算を与えなかった、とあなたはmashki、数学者として世界のすべてを考慮し、理解していない...そんなことで人にキレるなんて......バカみたい。

無礼講はお互い様だった。そして、誰かが何かを与えなかったからといって、ここで起こっていることの創造に影響を与えることはないのです。頼んだところで、もう全部説明してるし、その人はここだけでなく、全ての掲示板で宣伝してるんだから。辟易していると書かれています。

さて、本題です。

昨日リンクを貼りましたが、これはインジケーターのほぼメイン、いわば目玉です。

つまり、同じ時間間隔でのティック数と値動きの方向性を判断し、それに基づいて売買シグナルを 得るのです。ここではっきりしないことは何でしょうか。

主なものは、平均化しないことです。

したがって、ティックの量によってボラティリティを判断し、同じ時間間隔のデルタの合計(上に正しく書かれているように、デルタは連続したティックの間の価格の差です)によって、価格の動きの方向、すなわちトレンドを判断します。そして、デルタはマイナスにもプラスにもなる。持っているものを足し算していく。

実は、この指標を計算し、動作させるためには、最後のティックの数N個だけが必要であり、必要となります。履歴にダニを書き込むことは、テスト以外ではあまり必要ありません。

このインジケーターの 既存の類似品は、スピードメーターとして設計されて います。

 
new-rena:

無礼講の件ですが、それはお互い様でした。そして、誰かが何かを与えなかったという事実は、ここで起こっていることの創造には何の影響も及ぼさないのです。頼んだところで、もう全部説明してるし、あの人はここだけでなく全ての掲示板で宣伝してる。みんな「うんざりしている」と書いている。

さて、本題です。

昨日ここにリンクを貼ったので、実質的にこのインジケーターのメイン部分、いわばハイライト部分です。

つまり、同じ時間間隔でのティック数と値動きの方向を決定し、それに基づいて売買シグナルを 得るのです。ここではっきりしないことは何でしょうか?

主なものは、平均化しないことです。

したがって、ティックの量によってボラティリティを判断し、同じ時間間隔のデルタの合計(上に正しく書かれているように、デルタは連続したティックの間の価格の差です)によって、価格の動きの方向、すなわちトレンドを判断します。そして、デルタはマイナスにもプラスにもなる。持っているものを足し算していく。

実は、この指標を計算し、動作させるためには、最後のティックの数N個だけが必要であり、必要となります。履歴にダニを書き込むのは、本当は必要ないんです、多分テストの時だけ。

既存の指標としては、スピードメーターのような形があります。

このリンク先ですか?https://www.mql5.com/ru/forum/61389/page30#comment_1776762

ZS.相互の無礼についてですが、それは何もしないあなたです。最初に失礼なことを言ったわけではありません。

Импульс
Импульс
  • www.mql5.com
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий. - Страница 30 - Категория: автоматические торговые системы
 
Artyom Trishkin:

リンク先はこちらです。https://www.mql5.com/ru/forum/61389/page30#comment_1776762

ZS お互いに失礼というのは間違いです。最初に失礼なことを言ったのは私ではありません。

ええ、でもそれは4枚組の場合です。私の理解では、私たちは5でやっています。
 
Karputov Vladimir:

ダニを記録する根拠はそこにある。


ファイル名の形式。

ファイルには4つのカラムがあります。


問題は、どの程度の頻度で新しいファイルを起動すべきかということです。1時間に1回、すべてのファイルを起動した方がいいと思います。分析がしやすくなる。

高値、安値を追加する(または価格の変化を即座にカウントする) - 1ティックを逃すと(技術的な理由で)それらは変化する... 例えば、M1内部でBidが下がり、Highが上がったという状況があり得る

インパルス時や端末・コンピューターが他の作業をしている時に起こるのだと思います :-)

 
Karputov Vladimir:

600ティックという記録がありました。この記録(各100枚)は、6つのチャートに分散されていた。チャートには、価格とティック変化率(EMA10)が表示されます。すべてにおいて、数字を研究する理由があるのです。







グラフを見ると、微分誤差のようなものが出ていますね。つまり、まず速度を微分(dx/dt)として読み取り、それを(別の方法で)積分し、元のものと比較するのです。

ヒント:どんなMAも事実上の積分関数である

hint2: 正しい方向に動いているかどうかを確認するために、単純なSMAを取り、それを半期分後ろに移動させる。履歴の中に有用なものがあれば、それはスピードや勢いが理由があってカウントされていることを意味し、より深く掘り下げることができるのです

 
new-rena:
ああ、でも4pcで書いてあるんだよな。私の理解では、私たちは5でやっています。

どのプラットフォームを使っても違いはない。私はそこでRomanに質問し、プライベートで彼にコードを書きましたが、なぜinit()で配列のサイズを 200万に設定 し、start()で配列のサイズを0に変更し、インデックス-1(!!)で埋めようとし、その後に初めて配列のインデックスとなるべき変数SIZEを1増加させているのかを理解することは出来ませんでした。比べてみてください、これが私の提案です。

//+------------------------------------------------------------------+
//|                                                   FillArrays.mq4 |
//|              Copyright 2015, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Artem A. Trishkin, Skype artmedia70"
#property link      "https://login.mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//|   Input variables                                                |
//+------------------------------------------------------------------+
input int NumberOfStorableTicks=20;       // Количество сохраняемых тиков
int numberOfStorableTicks; // Количество сохраняемых тиков
input int PeriodOfMA=5;                   // Период сглаживания
int periodOfMA; // Период сглаживания
input ENUM_MA_METHOD MaMethod=MODE_SMA;   // Метод усреднения МА

//+------------------------------------------------------------------+
//|   Global variables                                               |
//+------------------------------------------------------------------+
string symbol;    // Symbol()
int digits;       // Digits
//+------------------------------------------------------------------+
//|   Arrays                                                         |
//+------------------------------------------------------------------+
double      Mass_ticks[];
double      Mass_smoothed_values[];
//+------------------------------------------------------------------+
//|   Structures                                                     |
//+------------------------------------------------------------------+
   MqlTick struct_tick;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   symbol=Symbol();
   digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
   //---
   numberOfStorableTicks=(NumberOfStorableTicks<1)?1:NumberOfStorableTicks;
   periodOfMA=(PeriodOfMA<1)?1:PeriodOfMA;
   //---
   ArrayResize(Mass_ticks,numberOfStorableTicks);
   ArrayInitialize(Mass_ticks,0.0);
   ArrayResize(Mass_smoothed_values,numberOfStorableTicks);
   ArrayInitialize(Mass_smoothed_values,0.0);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Comment("");
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(SymbolInfoTick(symbol,struct_tick)) {
      double tick_bid=struct_tick.bid;
      FillArrays(numberOfStorableTicks,tick_bid,Mass_ticks);
      }
   string txt="";
   for(int i=numberOfStorableTicks-1; i>=0; i--) {
      string itxt=IntegerToString(i);
      txt+="\nmass["+itxt+"]: "+DoubleToString(Mass_ticks[i],digits);
      }
   Comment(txt);
  }
//+------------------------------------------------------------------+
void FillArrays(int array_size, double price, double &mass_price[]) {
   //--- сместим данные в массиве влево
   for(int i=array_size-1; i>0; i--) {
      mass_price[i]=mass_price[i-1];
      }
   //--- запишем новый тик в массив
   mass_price[0]=price;
}
//+------------------------------------------------------------------+
void SmoothingDataArray(int array_size, int ma_period, int ma_shift, ENUM_MA_METHOD ma_method, double &mass_price[], double &mass_smoothing[]) {
   for(int i=array_size-1; i>=0; i--) {
      mass_smoothing[i]=iMAOnArray(mass_price,array_size,ma_period,ma_shift,ma_method,i);
      }
   }
//+------------------------------------------------------------------+

しかし、iMAOnArray()はそれを滑らかにすることを拒否しています。どんなにひねくれても、裏表がない。しかし、ここで意図する目的には必要ない。そうだな...

はい、忘れてました。ローマンがそう提案したのだ。

//---------------------
extern int MaxDrawTicks=100;
extern int Num_Aver_of_Ticks=5;  
double     xBuffer_Time []; // Массив значений   динамический
                            // В котором индекс - номер тика, значение - это бид 
int SIZE=0;                 // Вспомогательная переменная для массива                                  
int tickCounter, tickCounter_Current; 
//+------------------------------------------------------------------+
int init()
  {   
//--- устанавливаем размер динамического массива
   if(ArrayResize(xBuffer_Time,2000000)<0) {Alert(" Ошибка в изменении размера массива времени поступления тиков "); return(false);}
//--- установим индексацию для буфера как в таймсерии для динамического массива
  // ArraySetAsSeries(xBuffer_Time,true);    
//---   Возвращает количество элементов указанного массива. 
   int S=ArraySize(xBuffer_Time);
   if (S>=0) Alert("Размер массива: ",S);
   else Print("Ошибка. Массив не создан ",S);        
   ArrayInitialize(xBuffer_Time, 0);
   return(0);
  }  
//+------------------------------------------------------------------+
int start()
  {  
   //ArrayResize(ValueArr,size);
   //ValueArr[size-1] = GetValue();
   //size++; 
 //----------------------------------------  
   ArrayResize(xBuffer_Time,SIZE);
   xBuffer_Time[SIZE-1] = Bid; //NormalizeDouble((iTime (_Symbol,1,0)-_start), 2); 
  
   if ( SIZE >= 0 && ArraySize(xBuffer_Time) < 2147483647)
      {
      Alert (" Значение xBuffer_Time[SIZE-1] = ", DoubleToStr(xBuffer_Time[SIZE-1],Digits) );
      Alert (" Значение SIZE = ", DoubleToStr(SIZE,2) );  
      } 
    SIZE ++;   
 //---------------------------------------      
//------------
   return(0);
  }
 
Artyom Trishkin:

タブローに挑戦してみる

10刻み
九分どおり
八分目
チックセブン
六角
ダニ5
ダニ4
ダニ3 ダニ2
チック・ワン ダニ0
フューチャーティック
X10
X9
X8
X7
X6
X5
X4
X3
X2
X1X0
エックスエヌゼロ
X9X8
X7X6X5
X4X3
X2
X1
X0エックスエヌゼロ
エックスエヌワン

x0、x1、x2が現在の状態(ピンク)、残りが過去の状態(薄緑)を定義する。配列内のデータは常にシフトしており、新たに到着したxn0がゼロの刻みの代わりとなる。そこで、今度は現在の状態をx1, x0, xn0からカウントし、前回の刻み目x2を前回の状態を定義するセルにシフトして、その状態に対して小さな補正をすることになります。全部一緒にカウントしてしまうと、最初の3刻みはすべて補正されてしまうので、私にはかなり雑な印象です。

これには何かある。ティックチャートのスクリーンショットをご覧ください。

ティックチャートの画面イメージ

大きな矢印で囲った部分に注目してください。

そして、ティックの平均増分(tick0, tick1, tick2)が平均増分(tick3, tick4, tick5, tick6, tick7, tick8, tick9, tick10)より大きく、増分が0より大きい場合の条件処理について説明します。

条件の処理

 
Artyom Trishkin:

どのプラットフォームを使っても違いはない。私はそこでRomanに質問し、プライベートで彼にコードを書きましたが、なぜinit()で配列のサイズを 200万に設定 し、start()で配列のサイズを0に変更し、インデックス-1(!!)で埋めようとし、その後に初めて配列のインデックスとなるべき変数SIZEを1増加させているのかを理解することは出来ませんでした。比べてみてください、これが私の提案です。

しかし、iMAOnArray()はそれを滑らかにすることを拒否しています。どんなにひねっても、前に戻ったり、前に出たりする。しかし、ここで意図する目的には必要ない。そうだな...

OKです。また、時間間隔解析はコードのどこにあるのか、なぜMAが登場したのか?

私も自分のものにバグを発見しました。1つの同じ時間間隔の間に同じ数のティックがあるわけではありません。そんな指標をなくしてはいけない。

まだ5-Rkaを使い始めて日が浅いので、間違っているのかもしれません。