構造のルール プログラムの構成方法を学び、可能性、エラー、解決策などを探る。 - ページ 14

 
C-4:
この場合、信号の履歴を保存する必要があり、非常に高価になります。もう一度、2つの平均の交差について見てみましょう。仮にEAを再起動させたとします。エントリーのための新しいクロスはありませんし、EAは何とかその取引履歴を 復元し、クロスオーバーがあったことを理解し、それが今購入状態であるべきで、この信号が処理されていること、我々は新しい位置を開くべきではありませんが、我々は古い位置を見つける必要があります、それは現在の位置が必ずしも唯一のEAに属していない場合がありますので、見つけるのは簡単ではないでしょう...すべてにおいて、悪夢である。これはhrenfxが提案した茨の道である。すべてのロボットにヒストリーテスターを書き、過去のシグナルを集め、それが機能したかどうかを計算し、戦略のボリュームなどを保存するのである。その結果、開発の複雑さは桁違いになる一方で、確実な解決策はまだ見つかっていない。

シグナル履歴はインジケータです。インジケータは、計算を行い、シグナルを生成し、Expert Advisorにアップロードする、この目的のために設計されています。

そして、指標が再描画されるなんて言わずに、再描画されない指標を書けば、幸せになれます。


誰も私たちを迷わせることはできないし、私たちがどこへ行こうが知ったことではない。)

 
C-4:

どうでもいいわけがない!?どんな戦略も、その論理レベルでは、常に現在の状態を知っているのです

ここで、基本的な問題を説明します。私はそれをよく知っています、私はここですべての隅から隅まで調べました。 そして、それは間違って いるのです。

戦略は、その歴史を知る必要はないのです。戦略は後方ではなく、前方を見据える必要があります。起きたことはすでに過去のことであり、戻すことはできない。

単純なクロスオーバー戦略を例にとると、買いか売りかの2つの状態しかない。その位置を記憶することなく、速い平均が遅い平均を上回ると見るたびに、ロングポジションを建てることになります。では、シンクロナイザーは何をすればいいのだろうか。あなたは彼に、「いいえ、あなたはすでにロングポジションを持っているので、次のポジションを与えることはありません」と言いました。

:)

この問題は、「秩序」を考えることで初めて現実味を帯びてくるのです。存在しないものと思っているネトゲで。

あなたや私の考えではなく、プログラム(戦略)の考え方の話です。

注文ベースのシステムでは、ストラテジーは個別の買い/売り/終わりのシグナルを生成します。 ネットベースのシステムでは、ストラテジーは推奨されるマーケットポジションを数字(ダブル)で出力します。

2台のワゴンを例にして、ロールオーバー・ネッティングTCが、例えば一定ロットを取引する場合に、どのようにその製品を生み出すかを示してみよう(疑似コード)。

 Pos = Sign(MA(ShortPeriod) - MA(LongPeriod));

それだけです。

このストラテジーは、ショートのスイングがロングより大きい間は出力に+1、小さいときは-1を保持します。

そのポジションを維持するためにどのような注文を出すか、どのようなタイミングで決済するかの決定は、マーケットドライバーが行います。 戦略はそれを気にする必要はなく、その役割はより貴族的で、商取引に関するすべてのことを気にしません。 ドライバーはシンボルの推奨ポジションを取り、そこから実際のポジションを引いて差を表示します。 その差がゼロに等しければ、何も行いません。

私のソリューションは普遍的なもので、ストラテジーが自分で注文の数と方向を決定し、オープンにしておくことができます。

ストラテジーが注文を気にする必要は全くないのでしょうか? これらの疑問は、マーケットドライバーが決めることです。


買いポジションが1つ、売りポジションが2つであれば、問題ありません。

ここで笑っていいのだろうか。 まさにこれが問題で、「ロック」と呼ばれるものです。

私は、すべての潜在的なロックを解除する前に、いくつかの入力戦略の集約されたポジションをマーケットドライバーに提出するようにしています。

  Pos=0;
  for (i=0; i<StrategyCount; i++)  Pos+= Strategy[i].GetPos();
  MarketDriver.Synhronize(Pos, Err);

ベースクラスは、判断に必要なすべての情報を持っています。端末レベルでは、ネットポジションはなく、ストラテジー自体は快適なマルチポジションモードで動作します。

私が提案するテンプレートで作成されたExpert Advisorは、自動的にマルチExpertのプロパティを持つようになります。何も追加したり修正したりする必要はありません。一つのシンボルに異なるEAのポジションがネットに崩れることはありません。このパターンでグリッドやロッカーをプログラムするのは、他のストラテジーと同じように簡単です。つまり、Expert Advisorのロジックに関係なく、プログラム実行の完全な統一が 実現されているのです

えー...私のソリューションは、ロックが発生しないことを考慮すると、さらに汎用性があります。 ロック愛好家は私と一緒に行くのではなく、私が彼らと一緒に行くのです。
 
MetaDriver:

...

このストラテジーは、ショートがロングより高ければ終了時に+1、低ければ-1を保持します。

マーケットドライバーは、適切なタイミングでポジションを維持するために、どのような注文を出すか、どのように閉じるかを決定します。 戦略はそれを気にする必要はなく、その役割はより貴族的で、この商業的な虚栄心のすべてを気にすることはないのです。

このような細かいことは、マーケットドライバーが決めてくれるのです。

...

もちろん、それはとても良いことですが、現在の「推奨」が以前に開いたポジションに 依存する戦略についてはどうでしょうか。ある戦略が積極的にピラミッドを行い、そのような条件(疑似コード)を持っているとする。

if(LastPosition.NetProfit > 400 && LastPosition.PositionType == Long)
{
   double volume = LastPosition.Volume + 1;
   BuyAtMarket(volume, "Entry long by strengthening");
}

このような単純な条件をレコメンデーションシステムがどのように扱うか、別の例(疑似コード)を示します。

if(LastPosition.NetProfit < -400)
{
    CloseAtMarket(LastPosition, "Exit position by stop-loss");
    if(LastPosition.PositionType == Long)
       ShortAtMarket(volume, "Entry long by revers")
    else
       BuyAtMarket(volume, "Entry short by revers")
}
現実には、そのような条件がたくさんあるのかもしれません。
 
MetaDriver:
それが基本的なファジーです。よく知ってるんだ 隅々まで調べ尽くした そして間違ってる んだ

戦略には、その歴史を知る必要はない。戦略は後ろ向きではなく、前向きに考えなければなりません。起きてしまったことは、すでに過去に起きてしまったことであり、後戻りはできないのです。

なぜ叫んでいるのですか :) それは彼が言ったことではありません。


どんな戦略も、そのロジックのレベルでは、常に現在の状態を知っているのです

歴史ではなく、現状が大事なんです。
 
C-4:

もちろん、これは非常に良いことですが、現在の「推奨」が以前に開いたポジションに 依存する戦略についてはどうでしょうか。ストラテジーが積極的にピラミッドを行うもので、このような条件(疑似コード)を持っているとします。

このようなストラテジーは、トレード哲学のレベルで治療する必要がある。 つまり、「現在の推奨は、以前に建てたポジションに 依存する」という頭の穴を治療する必要がある。

現在の推奨ポジションは、市場で以前に取られたアクションに決して依存してはならない。

 
sergeev:

なぜ叫んでいるのですか :) それは彼が言ったことではありません。

歴史ではなく、現状と書いてある。

言ってることが通じない、意味が通じない 前の現状に言及してたんだよ。

:)

 

:)

実際、私のスキームでは、過去のトレードを考慮したストラテジーを作るのに、元々支障はないのです。

より学術的な言い方をすれば、メモリを持たないシステムは、メモリを持つシステムを簡単にシミュレートできる。 そのためには、メモリをシステムの外に移動させ、別の入力指標にすればよい。 これで十分だ。 戦略自体は「メモリを持たないシステム」のままで、これは良いし正しいこと だ。

 
MetaDriver:

現在の推奨ポジションは、マーケットで以前に行われたアクションに依存してはならない。

信号が1文の「自薦他薦」ロボットはどうでしょうか?ロボットは大きな上昇ローソク足、つまり買いのシグナルを見たのです。次のバーは通常のバーで、シグナルはありません。ロボットが自分の状態を覚えていない場合、このバーでの推奨値はすでにnullであり、覚えているロボットはnullではなくロングポジションをとっていることになります。しかし、それは2台の同じロボットです。

MetaDriver

私は、彼が言ったことではなく、彼が意味したことを伝えています。 彼は、以前の現在の状態を指していました。

ああ、そういうことだったのか!」。知っているつもりです:)
 
C-4:...もちろん、それはとても良いことですが、現在の「推奨」が以前に開いたポジションに 依存する戦略についてはどうでしょうか。ある戦略が積極的にピラミッドを行うものだとすると......。

要は、トップスターターは戦略ではなく、価格予測をしているのだろうということです。

MetaDriver: ...ストラテジーの課題は、次の時点で市場が上がるか下がるか、その確率を予測 することです。 推奨される市場のポジションは、これによって決まります。過去に何があったのか、(どちらかの方向に)ポジションが空いているのかいないのか、そんなことは全く重要ではありません。
そして、あなた(C-4)が言っているのは、予測器の読みと過去の取引結果の両方を入力とする資金管理モジュールの働きです(何らかの関数)。もしMMがなければ、最終的な取引アルゴリズムは、実際、(過去の取引結果を気にしない)仮想のプレディケーターポジションを、将来の市場方向が推奨ポジションのサインとなり、自信・可能性が同ポジションの出来高に比例するリアルポジションに変えることになるのです。

MMモジュールはフォアキャスターとドライバーの間のレイヤーで、結果は資本金やリスク制限(X ...時間/取引/pipsの動きでの相対ドローダウン)からフォアキャスターの推奨ポジションの急激な逆転まで、何でも可能です。

 
C-4:

信号が1文の「自薦他薦」ロボットはどうでしょうか?ロボットは大きな上昇ローソク足、つまり買いのシグナルを見たのです。次のバーは通常のバーで、シグナルはありません。ロボットが自分の状態を覚えていない場合、このバーでの推奨値はすでにnullであり、覚えているロボットはnullではなくロングポジションをとっていることになります。そして、それは2台の同じロボットです。

このようなロボットには、ぜひ治療をしてあげてください。 治療はとても簡単かもしれません。 必要なのは、やる気だけです。それが最大のポイントです。

そして、ネット思考が秩序思考よりも圧倒的に優れていることを実感してもらうことが、モチベーションアップにつながります。 病気である限り、健康な人たちには近づけない、隔離しておく......。

:)

ああ、そういうことだったのか!」。知ってよかった:)
謝る必要があるのか、それとも正解なのか?)