右のTCのいくつかの兆候 - ページ 9

 
Petros Shatakhtsyan:

なぜ話題から外れるのか?

価格を上げても、定数をかけても、値動きの性質は変わらない。

安定性試験」を誤解していたのかもしれません。TSの堅牢性を評価するということであれば、話がずれますが。

 
fxsaber:

フリッピング、さらにはシャッフルについて、少し研究してみたい。

コメントの中で、時間反転後のTSの挙動について考えてみてはどうかという意見がありました。まるで巻き戻しのスイッチが入ったかのように、刻みは反対方向(未来から過去へ)に進みます。

また、どのシンボルで反転がTSの結果に影響を与えないと、それは市場パターンの重大な変化であるために、読み取ることができます。

幸いなことに、FXのシンボルは、理論的には、この時間反転で相場パターンを破壊することはないはずです。これをあるTSでテストしてみると、面白いことがわかりました。


まず、MQL5でティックシリーズの反転を行うコードです。

int TimeDayOfWeek( const datetime Date )
{
  MqlDateTime mTime;
  
  TimeToStruct(Date, mTime);
  
  return(mTime.day_of_week);
}

#define  HOUR 3600
#define  DAY (24 * HOUR)
#define  WEEK 7

// https://www.mql5.com/ru/forum/170953/page8#comment_6940794
datetime GetTimeDayOfWeek( const datetime TimeSource, const int Shift = 0, const ENUM_DAY_OF_WEEK Day = SUNDAY )
{
  const datetime Res = TimeSource / DAY * DAY;
  
  return(Res - (((WEEK + (TimeDayOfWeek(Res) - Day)) % WEEK) + Shift * WEEK) * DAY);
}

void ReverseTick( MqlTick &Tick, const long &Offset )
{
  Tick.time_msc = Offset - Tick.time_msc;
  Tick.time = (datetime)(Tick.time_msc / 1000);
  
  return;
}

// Инверсирование времени.
void ReverseTicks( MqlTick &Ticks[] )
{
  const int Size = ArraySize(Ticks);
  
  if (Size)
  {
    const long Offset = (long)(GetTimeDayOfWeek(Ticks[0].time, 0, MONDAY) + GetTimeDayOfWeek(Ticks[Size - 1].time, -1, SATURDAY)) * 1000;

    for (int i = 0; i < Size; i++)
      ReverseTick(Ticks[i], Offset);

    ArrayReverse(Ticks);
  }

  return;  
}


この機能をベースに、反転したシンボルを作成するスクリプトが添付されている。私たちは、それを使って仕事をします。その結果は以下の通りです。


ストレートシンボルにオプティマイザーのベストパス。


時間反転シンボルにも同じパスがある。


推論はしない。

ファイル:
 

fxsaber:

また、どのシンボルではTSの結果に影響を与えないか、どのシンボルでは市場パターンに重大な変化をもたらすかを読むことができます。

全く驚くことではありません。特に、インジケーター/シグナルを使った取引が行われる場合。刻みの順番が逆だと、また違った絵が描けます。 その結果、インジケータはより多くの、あるいはより少ないエントリー/エグジットシグナルを与えることになります。
これは一番シンプルなことです。でも、もっと掘り下げれば、いろいろなディテールが出てくるはずです。そして、すべてはダニの模様が変わったからです。

 
Konstantin Nikitin:

驚くようなことは何もない。特に、インジケーターやシグナルを利用した取引を行う場合。刻みの順番を逆にすると、違う絵が描かれます。その結果、インジケータはより多くの、あるいはより少ないエントリー/エグジットシグナルを与えることになります。
これは一番シンプルなことです。でも、もっと掘り下げると、いろいろなニュアンスが見えてきます。そして、すべてはダニの模様が変わったからです。

まるで、エントリーをそのまま持ち出したかのようです。その前に結論があったのでしょう。今のところ、その文章からは何も理解できていません。

 
Nikolai Semko:
メインを追加します。
  • は、周期に依存したパラメータを持たない。
  • TSの動作は、現在のチャートのタイムフレームに依存しません。
  • TSの動作はシンボル・インストゥルメントに依存しない
  • TSの設定全体は、リスク管理(使用する保証金の大きさ)の設定に過ぎない。

ストーリーテラー...

 
Алексей Тарабанов:

ストーリーテラー...

彼の言うことも一理ある...。

そして、その反応に息を呑む...静かに...。

が、いわば宴の続きをしたいのです。

;)

 
Renat Akhtyamov:

彼の言うことも一理ある...。

おそらくすべてのものに、息をひそめて反応をうかがいながら...黙々と。

が、いわば宴の続きをしたいのです。

;)

マーチンゲールだけでいい。完璧です。

 
fxsaber:

...

例えば、EURUSDを例にとると。TSを走らせ、多数のエントリーを取得。

そして、シンボル100/EURUSDを作成しました。そして、TSを走らせた。エントリーはオリジナルのものと一致させてください。

そうならない場合(99%)、TSが正しく書き込まれていないことになります。

TSがある程度取られた記号にどう反応すべきなのか理解できない。

はっきりさせるべきですね。100/EURUSD の場合、入力と出力が入れ替わるか、取引開始の方向が変わるはずです(買いの代わりに売り)。逆数値の変化の符号は同じ時間間隔で逆になっている。どのような変換が適切か - 時間軸全体ではモノトニックなものがいいと思います。任意の基数による正の乗算と対数の両方。

結局、安値で買って高値で売るというレートの歴史がすでに存在すれば、どこで買えばよかったのか、どこで売ればよかったのか、誰もが描くことになるのです。 単調関数による変換は極値の位置を保持する、それで十分です。

 
Vladimir:

明確にすべきです。100/EURUSD では、エントリーとエグジットを逆にするか、取引開始の方向を逆にする必要があります(買いの代わりに売り)。

もちろん、方向性は変わりますが、時間は変わりません。

同じ時間間隔での逆方向の変化の符号。どのような変換が適切か - 時間軸全体ではモノトニックなものがいいと思います。任意の基準で正の指数と対数の両方。

結局、安値で買って高値で売るというレートの歴史がすでに存在すれば、どこで買ってどこで売ればいいのか、誰もが描くことになるのです。 単調関数による変換は極値の位置を保持する、それで十分です。

この変換により、確かに局所的な極限状態は維持されます。それらを識別できる機能はただ一つ、「ZigZag with zero min knee」である。

min knee(極値間の相対価格変化の最小値)の大きさが異なるZigZagや非SigZag(他の関数)を用いて特定した局所極値は、単調関数を乗じた後に一致することはありません。


あなたの提案した変換におけるゼロ・ジグザグの不変量は、残念ながら、修正した級数を元の級数に戻すことはできません。 したがって、この変換は、すべての単調関数に対するTCの結果を変えるしかないのです。


しかし、ある特定の関数については逆変換が可能である。関数定数について触れました。そこはかなり初歩的なことなんです。

より一般的な例として、(時間的に)一次関数による乗算を 指摘されていますね。しかし、そこでは逆変換のために元の価格系列の少なくとも小さな(少なくとも2つの局所的極値が存在する)区間を持つ必要があるのです。


しかし、現実にはそのような間隔を持った初期価格系列は存在しない。これは、このような変革の経済的解釈が完全には明確でないことを差し置いても、である。おそらく、一次関数による掛け算は、ある資産の隠れたインフレになるのでしょう。


総じて言えば、残念ながら定数による乗算を一般化する方法はない。でも、発想はとても面白かったです、ありがとうございました。

 
Renat Akhtyamov:

彼の言うことも一理ある...。

ちょうどいいんです。