テスターでのクリアランス - ページ 4

 
Roman Shiredchenko #:

清算時の評価減は無視できる。

例50で買い取引を開始し、清算開始時に価格が70とします。 清算中に取引は削除され、20トゥグリックを獲得し、清算後に取引は70で開始されます。

100で決済した場合、ターミナルには50トゥグリークの利益で1トレードが表示されます。

問題は通常、トロールやCUを書くときに発生します。例えば、トレードが15以上の時に+5のCUEを付けたいとします。

この例から数字を拾ってみると、ストップロスをクリアする前は+5ポイント、クリアした後は-5ポイントになりますが、もしストップで取引が終了しても5ラウンドの利益を得ることができます。

そのため、テスターではクリアを無視することができます。

 
Aleksandr Slavskii #:

本当にシンプルで、何より信頼できる。


話がそれてしまいましたが、筆者はクリアリングの終了を判断するレシピをお持ちですか?

問題はこれです:オープナーブローカーは、清算中に保留中の注文を削除し、清算フィールドが再びそれらを設定しません。

先物は分かりませんが、株は清算が終わるタイミングが違います。

そのため、特定の証券についてクリアランスが終了する瞬間を特定することはできていない。

私は単純にタイマーでオープンまで発注を送るだけです。

このやり方は好きではないし、他にない。

大丈夫ですよ~、一緒に議論、討論しましょう~、話題はみんなに開かれていますよ~!!!!
 
Aleksandr Slavskii #:

清算時の評価減は無視できる。

例50で買い取引を開始し、清算時に価格が70になるとします。 清算時に取引は削除され、20トゥグリックを受け取ります。

100で決済すると、ターミナルには50トゥグリークの利益で1トレードが表示されます。

問題は通常、トロールやCUを書くときに発生します。例えば、トレードが15以上の時に+5のCUEを付けたいとします。

この例から数字を拾ってみると、ストップロスをクリアする前は+5ポイント、クリアした後は-5ポイントになりますが、もしストップで取引が終了しても5ラウンドの利益を得ることができます。

そのため、テスターでクリアを無視することもあります。

おお!面白い...。は、もっと奥まで行って試してみなければなりませんね。:-)

カウント連続マイナスとディスプレイ - ACCOUNTクリアのような、多分かなりそれは取引時にすべての権利になる - ちょうど今それを見て(記事から取った)FIE正確に歴史の中で取引からのカウントを書いた...

ですから、正確にポジションを決済するためには、例えば、前回の決済がマイナスだった場合、それを考慮して、決済した利益と前回の決済時の損失の値を比較する必要があります。

//+------------------------------------------------------------------+
//|                 УЧЕТ КЛИРИНГА
//+------------------------------------------------------------------+
double Calc_Clearing() // вычисление лота
  {
   bool ord;
   double TotalLot=0;
    for(int i=HistoryDealsTotal()-1; i>=0; i--)
     {
      ulong ticket=HistoryDealGetTicket(i);
      ord=HistoryDealSelect(ticket);
      if(ord && HistoryDealGetString(ticket,DEAL_SYMBOL) == _Symbol
       //  && HistoryDealGetInteger(ticket,DEAL_MAGIC) == MagicC
         && HistoryDealGetInteger(ticket,DEAL_ENTRY) == DEAL_ENTRY_OUT)
        {
         if(HistoryDealGetDouble(ticket,DEAL_PROFIT) <= 0)
           {
            TotalLot+=HistoryDealGetDouble(ticket,DEAL_VOLUME);
           }
         else
           {
            break;
           }
        }
     }
   return TotalLot == 0 ? TotalLot: TotalLot;
  }

エラーが見つかりました - 修正してください。

TotalLot+=HistoryDealGetDouble(ticket,DEAL_PROFIT);

その結果、上の画面にはこの挿入前の画像が表示されています。

   Comment(" SPREAD текущий по символу ", _Symbol, " составляет: ", SymbolInfoInteger(_Symbol,SYMBOL_SPREAD),
    "      СВЕРКА по клирингу:  ", NormalizeDouble(Calc_Clearing(),0));

清算融和

というのも、まだクリアーロスがなかったからです。

2021.11.09:「アウト」はすべて「プラス」に。


 
Roman Shiredchenko #:

ひどい!間違いが多すぎて、コメントしきれない。

別の言い方をしよう。

ポジションに興味があるのに、なぜ取引履歴が必要なのですか?

新規取引ごとに最後のポジションの価格を変数に書き込み、清算時に変数に書き込んだ価格と清算前の最後のティックの価格との差でCUを調整すればよいのではないかと思います。

lot = 1;

double end_position=0;

価格30、end_position = 30 で最初の取引。

価格60で 2回目の取引を行い、end_position = 45 としました。

価格 90、end_position = 60 で3回目の取引。


つまり、出来高が3の60のポジションを持っているとします。

仮に70の価格で清算されたとすると、利益は30トゥグリクに相当します。

double clearing_price = 70;

クリア後、ポジションは価格70でオープンしましたが、このポジションの実際の 価格はend_position == 60 であることを覚えておく必要があります。したがって、この価格からトロールまたはCUEを計算 します。

したがって、クリア時に変数

double corrector = 0;

コレクター =清算価格-終了位置

それぞれトレードが+20pipsの時にCUスタートがあったとすると、CU関数に「20-corrector」と追加してください。

また、CUをプラスにした場合、それらも補正 値で補正しなければならない。

任意の位置補正 器を閉じた後0


ただし、これはクリア後の部分終値やフィルがない場合のみ有効です。あるとすれば、違う方法でやるしかない。

 
Aleksandr Slavskii #:

本当にシンプルで、何より信頼できる。


話がそれてしまいましたが、筆者はクリアリングの終了を判断するレシピをお持ちですか?

問題はこれです:ブローカーオープナーは、清算中に保留中の注文を削除し、清算フィールドはそれらを再び設定しない。

先物は分かりませんが、株は清算が終わるタイミングが違います。

そのため、特定の証券についてクリアランスが終了する瞬間を特定することはできていない。

私は単純にタイマーでオープンまで発注を送るだけです。

このやり方は好きではないし、他にない。

オープナーも持っていますが、先物で。クリアランスの終了も同じ問題で、判断の仕方がわからず、ただ19:05をとっています。

つまり、今日だけでなく、日付までホールドを置くことができるのです。少なくとも先物では。

 
Aleksandr Slavskii #:

1.恐るべし!間違いが多すぎて、コメントしきれない。

別の言い方をしよう。

ポジションに興味があるのに、なぜ取引履歴が必要なのですか?

新規取引ごとに最後のポジションの価格を変数に書き込み、清算時に変数に書き込んだ価格と清算前の最後のティックの価格との差でCUを調整すればよいのではないかと思います。

lot = 1;

double end_position=0;

価格30、end_position = 30 で最初の取引。

価格60で 2回目の取引を行い、end_position = 45 としました。

価格 90、end_position = 60 で3回目の取引。


つまり、出来高が3の60のポジションを持っているとします。

仮に70の価格で清算されたとすると、利益は30トゥグリクに相当します。

double clearing_price = 70;

クリア後、ポジションは価格70でオープンしましたが、このポジションの実際の 価格はend_position == 60 であることを覚えておく必要があります。したがって、この価格からトロールまたはCUEを計算 します。

したがって、クリア時に変数

double corrector = 0;

コレクター =清算価格-終了位置

それぞれトレードが+20pipsの時にCUスタートがあったとすると、CU関数に「20-corrector」と追加してください。

また、CUはプラスにポイントを置いていますが、これもコレクター 値で補正する必要があります。

任意の位置補正 器を閉じた後0


2.ただし、これはクリア後の部分終値やフィルがない場合のみ有効です。もしあれば、別の方法をとるべきでしょう。

1.スケジュールありがとうございます。ブー+30pipsで追証やトラブりがあり、またトラブった後、ロボットの動作ロジック上、部分的にクローズすることがあるので、今のところコレクターなしで見てみたいです。すなわち、スタートポジションを開いた後、オープンプライスを記憶し、追加-平均化-した後、再びポジションの新しいオープンプライスを記憶するのです。そして、要するに、ブローカーによるクリアリングと新しい始値の設定は問題にならないのです。

この方法は、私のこの投稿に書かれている上記の取引ロジックに従って行うこともできると、私は正しく理解しているのですが...。

さらに、現在の資産価格が許すなら、SLをあらかじめ記憶しておいた累積ポジション価格からBU+30pipsに移行する。

そして、ブローカーが設定した、先物の現在のオープンポジションの価格を気にする人はいないでしょう。


2.

"ただし、これはクリア後のパーシャルクローズやフィルがない場合に限ります。もしあれば、別の方法で行う必要があります。"

フィルがある...前と後 - それはBU + 30ピップに転送するまで - 私たちは必要になりますので、配列を経由してすべての市場注文の現在の平均価格を読み取ることが本当に必要なのでしょうか?

...成行注文の開始価格と各注文の契約数と数量が必要です。それらの平均価格を合計して表示するために - CUへの移行はどこを意味するのか - 計算するために...。


平均価格= ((OPEN_1 * VOLUME_1) + (OPEN_2 * VOLUME_2) + (OPEN_3 * VOLUME_3) + n) / (VOL_1 + VOL_2 + VOL_3 + n), ここで私はすべての集約位置のBU + 30ピップで変換SLを持っていないことが判明 - それは配列または何内のすべてのこれらの値を記述する必要があるのですか?N番目の成行注文のスライスをオープンした場合、このチェーン全体を引き上げて、すべての平均を計算する必要がありますか?

あるいは、何とかして遊ぼう。

HistoryOrderSelect ()
HistoryOrderGetTicket ()

しかし、そこで問題となるのは、「実際のポジションの集合体」の形成に参加する「実際のマーケットオーダー」のループの始点と終点をどのようにとらえるか、ということです。

 
Roman Shiredchenko #:

VOLUME_Price = ((OPEN_1 * VOLUME_1) + (OPEN_2 * VOLUME_2) + (OPEN_3 * VOLUME_3)+n) / (VOL_1+VOL_2 + VOL_3 + n), だから私はまだすべての集約ポジションのBU + 30 pipsにSLに変換されていないことが判明 - 私はすべての配列にこれらの値を記述すべきでしょうか?N番目の成行注文を出したら、全部の平均を計算してチェーン全体を上げるべきじゃないですか?

残念なことに、これはまさにその通りです。

 

Roman Shiredchenko #:

Average_Price = ((OPEN_1 * VOLUME_1) + (OPEN_2 * VOLUME_2) + (OPEN_3 * VOLUME_3)+n) / (VOL_1 + VOL_2 + VOL_3 + n), だから私はすべての集約位置でBU + 30 pipsにSLに変換しなかったことが判明 - すべてのこれらの値を配列に書き込むか何ですか?N番目の成行注文のスライスをオープンした場合、このチェーン全体を引き上げて、すべての平均を計算する必要がありますか?

あるいは、何とかして遊ぼう。

しかし、そこで問題になるのは、実際のトータルポジション形成に参加する実際のマーケットオーダーのサイクルの開始と終了をどのように取るかということです。

直近の平均値を格納すれば十分である。

 
JRandomTrader #:

直近の平均値を保持していれば十分である。

しかし、例えば、任意の容量を補充する場合、実際にどのようにカウントすればよいのでしょうか。
 
Roman Shiredchenko #:
例えば、ボリュームを追加した場合、どのようにカウントするのですか?

示しました。 この最後の平均価格とポジションのボリューム、新しいトレードの価格とそのボリュームを取ります。すべてが正しく計算されます。