MT5でのデリバティブ市場の相場 - ページ 10

 

COPY_TICKS_ALLやCOPY_TICKS_TRADESの使い方をまとめてみました!!!

私が読んだ本では、より正しいデルタ計算のためには、すべてのティックを使用するのではなく、トレードごとにティックを使用する方が良いと理解しています。そうだろ?

どちらか一方を使うのと、もう一方を使うのでは、何が違うのでしょうか。その結果、どのような効果があるのでしょうか?

 
Mihail Marchukajtes #:

COPY_TICKS_ALLやCOPY_TICKS_TRADESの使い方をまとめてみました!!!

私が読んだ本では、より正しいデルタ計算のためには、すべてのティックを使用するのではなく、トレードごとにティックを使用する方が良いと理解しています。そうだろ?

どちらか一方を使うのと、もう一方を使うのでは、何が違うのでしょうか。その結果、どのような効果があるのでしょうか?

どのようなデルタを意味するのでしょうか?

 
Mihail Marchukajtes #:

COPY_TICKS_ALLやCOPY_TICKS_TRADESの使い方をまとめてみました!!!

私が読んだ本では、より正しいデルタ計算のためには、すべてのティックを使用するのではなく、トレードごとにティックを使用する方が良いと理解しています。そうだろ?

どちらか一方を使うのと、もう一方を使うのでは、何が違うのでしょうか。その結果、どのような効果があるのでしょうか?

あるフォーラムメンバーのプロフィールに、スクリーンショットのリンクがありましたね。

計算に誤りがあったのか、価格計算式が間違っていたのか

宣伝しないで、写真で見てください。

しかし、正しく計算されているのであれば、ピンポイントで、つまりデルタなしでLastにヒットするはずだと思うのですが・・・。

証券会社自身が、少なくともMOEXでは価格は1秒ごとに計算されると言っています。

こんな膨大な計算が役に立つとは思えない、一度確認したい、カップごと転がされた、Lastはどうなんだ・・・、がっかりして交換から逃げてしまった
 
prostotrader #:

どのようなデルタを指しているのでしょうか?

デルタ、特定のバーの買い手と売り手の数の差。

ティックの要求、デルタとボリュームの計算が行われるコードの一部を以下に示します。

   Linterest[0]=GlobalVariableGet("LLINTER");

   double delta=0;  
   double vola=0;
   int num= CopyTicksRange(Name_instrFS,tick_array,COPY_TICKS_TRADE,StartDate*1000,Start1Date*1000);
   //Print (num);
   if (num>0){
   long sumVolBuy=0;
   long sumVolSell=0;
       for (int q=0;q<num && !IsStopped();q++)
          { 
if(( tick_array[q].flags&TICK_FLAG_BUY)==TICK_FLAG_BUY && (tick_array[q].flags&TICK_FLAG_SELL)==TICK_FLAG_SELL) // Если тик обоих направлений
      Print(__FUNCTION__,": ОШИБКА! Тик '""' неизвестного направления!");
   else if(( tick_array[q].flags&TICK_FLAG_BUY)==TICK_FLAG_BUY) // Если тик на покупку
   sumVolBuy+=(long)tick_array[q].volume;
   else if(( tick_array[q].flags&TICK_FLAG_SELL)==TICK_FLAG_SELL) // Если тик на продажу
   sumVolSell+=(long)tick_array[q].volume;
           
       if(( tick_array[q].flags&TICK_FLAG_VOLUME)==TICK_FLAG_VOLUME)   vola+=tick_array[q].volume_real; 
          }
    delta=double(sumVolBuy-sumVolSell); 
    if (Ldelta!=delta) Ldelta=delta; else delta=0;
  }
    for (int i=0;i<5 && !IsStopped();i++)
    { 
      h=FileOpen("OpenI\\"+Name_instr+"_OI.csv",FILE_WRITE|FILE_READ|FILE_ANSI|FILE_CSV|FILE_COMMON|FILE_SHARE_READ,";");
       if(h!=INVALID_HANDLE)                                                         
       {  
         
         FileSeek(h,0,SEEK_END);
         FileWrite(h,RecDate,DoubleToString(Linterest[0],0),DoubleToString(delta,0),DoubleToString(vola,0)); 
         FileClose(h); 
         Sleep(100);
         FlagOFupdate[0]= true;
        break; 
       }
    } 

元々CopyRangではCOPY_TICKS_ALLでしたが、昨日からCOPY_TICKS_TRADEに変更しました。先ほどの問題提起との関係で、どこまで正論を言えるか?

 
Mihail Marchukajtes #:

デルタ、特定のバーの買い手と売り手の数の差。

ティックの要求、デルタとボリュームの計算が行われるコードの一部を紹介します。

当初はCopyRangのCOPY_TICKS_ALLだったのですが、昨日COPY_TICKS_TRADEに変更しました。先ほど声を上げた問題点との関係で、どこまで正しいのか?

この場合、取引のみが取引量パラメータを持つため、COPY_TICKS_TRADEのみを 取得する必要があります。

コントラクトASKとBIDのボリュームを使用するためには、グラスを 使用する必要があります。

for (int i=0;i<5 && !IsStopped();i++)
    { 
      h=FileOpen("OpenI\\"+Name_instr+"_OI.csv",FILE_WRITE|FILE_READ|FILE_ANSI|FILE_CSV|FILE_COMMON|FILE_SHARE_READ,";");
       if(h!=INVALID_HANDLE)                                                         
       {  
         
         FileSeek(h,0,SEEK_END);
         FileWrite(h,RecDate,DoubleToString(Linterest[0],0),DoubleToString(delta,0),DoubleToString(vola,0)); 
         FileClose(h); 
         Sleep(100);
         FlagOFupdate[0]= true;
        break; 
       }
    } 

これはなかなか悲しいコードです。

繰り返しのたびに、ファイルを開いたり閉じたりします。

 
prostotrader #:

この場合、取引のみが取引量パラメータを持つため、COPY_TICKS_TRADEのみが 取得されます。

ASK、BIDの契約数量を利用するためには、グラスを 使用する必要があります。

これはなかなか悲しいコードです。

繰り返しのたびに、ファイルを開いたり閉じたりします。

最初の試みが成功した場合は、いいえ、しかし、データは前のバーのために分の先頭に書き込まれているOI、デルタと音量を記録するのはかなり良いです!!!。
 
Mihail Marchukajtes #:
最初の試みが成功した場合は、ありませんが、データは前のバーの分の先頭に書き込まれているOI、デルタとボリュームを記録するために非常に良いことだ![OK]をクリックします。

スクリーンショットを見せてもらえますか?

 
Renat Akhtyamov #:

スクリーンショットを見ることはできますか?

はい、お願いします...。

ほら、全部うまく書けるけど、全部のティックを記録するのと、トレードだけするのとでは、違いがわからない。面倒なことはしたくない。結局、NSではオフセットや誤差は重要ではなく、学習後にデータを変更しないことが重要なのです。なぜなら、NSでEAを初期化する際には、現在の正しいパラメータから計算を開始するために、次の瞬間までの履歴を正しく計算しなければならないからです。初期化が正しく行われなかった場合、最後に知った信号の現在値が異なり、新しい信号が他の位置から計算を始めるため、予測できない結果になることがあります。したがって、エラーがあっても、どうやったかは問題ではありません。トレーニング後に変えないことが最大のポイントです!!!!

 
Mihail Marchukajtes #:

はい簡単に...。

ほら、全部うまく書けるけど、全部のティックを記録するのと、トレードだけするのとでは、違いがわからない。面倒なことはしたくない。結局のところ、NSにとって重要でないオフセットや誤差はそれほど重要ではなく、学習後にデータが変更されないことが重要なのです。なぜなら、NSによるEAの初期化の際に、次のEAが現在の正しいパラメータから計算を開始するために、現在の時点までの履歴を正しく計算しなければならないからです。初期化が正しく行われなかった場合、最後に知った信号の現在値が異なり、新しい信号が他の位置から計算を始めるため、予測できない結果になることがあります。したがって、エラーがあっても、どうやったかは問題ではありません。トレーニング後に変えないことが最大のポイントです!!!!

Excelの行数には制限があります。機械が投げるなら、それを意識してください。sqlを使用するのがよいでしょう。スクリーンショットから計算した結果、実用上のポイントは何でしょうか?
 
Renat Akhtyamov #:
エクセルの行数には制限があります。機械が投げる場合は、そのことを念頭に置いてください。より良いSQLを。スクリーンショットから計算した結果、実用上のポイントは何でしょうか?

通常のCWSファイルが書き込まれます。

OI履歴、デルタ、出来高をそれぞれ収集。100%というデータは、そのようなOIの履歴がないことはもちろん、履歴が変更されることはありません。上にあげた記録されたパラメータを計算するためのコード・・・。

理由: