市場:取引業務なし - ページ 7

 
Vitaly Muzichenko:

真偽チェックではなく、ロットリターンによる通常の関数を構築する

そして、彼は余分なチェックをするのが好きなのです。ストラテジーテスター であることを確認し、さらにcheckVolumeValue 関数が何を返したかを確認する必要があります...。

 
Evgeny Belyaev:

斜め読みしていませんか?

他に質問はありますか?

信号が見えたら、お前のグレイルはどこだ?

商品の構成から見て、マーケットにEAを投下したわけではないのですね。

だから

こんにちわ

;)

 
Vladislav Andruschenko:


それなら問題ないでしょう。

は、同じ多通貨の場合、テストに合格します。

また、トレーディングの動作はテスターの気分次第かもしれません :-)- 機嫌が悪く(リフレッシュ、睡眠、休日)、取引活動が行われないのかわからない。

違うスプレッドを試したり、1日待つとまた気分で全部飛ばしたりするくらいです。

問題なく確認できています、機能は完璧です。最小ロットのチェックを削除し、最小ロットが0.01以上許可されている場合は取引しないようにしました。
バリデータでは、0.01より大きいロットが表示されたので、取引はしませんでした。

 
Renat Akhtyamov:

製品の構成から判断して、EAをMarketに投下したわけではないのでしょう

だから

こんにちわ

;)

まあ、そうなんですけどね、それがまた残念なんですよ。リンクが欲しいのか、自分で探したいのか?

信号が見えたら、お前のグレイルはどこだ?

ある人のために仕事をしたこともある。


 

見てください、私はフクロウを持っています 最初のロットは設定から取得されます つまり、ユーザーがロットを入力するときに間違えた場合のみ 許容値より小さくなる可能性があります。

例えば、ユーザーが0.05ロットの取引をしたいのに、タイプミスで0.005と書いてしまった場合、それを確認すると、フクロウは0.01ロットを取引します(0.01が最小ロットと仮定しています)

0.005で取引したい、0.05で取引したいと思った場合 - アラートを追加することができます。

これは、誰がそうしたいのか、個人の判断の問題だと思うのですが・・・。

ちなみに、チェックも失敗したときのコード(さっきも書いたけど)の一部です。

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
 ......

}
 
Evgeny Belyaev:

なんとなくそう思っていたので、またまた残念です。リンクが欲しいですか?それとも自分で探しますか?

信号が見えたら、お前のグレイルはどこだ?

私は、このような話題でアイデアハンターと話をするのは好まない。

 
Renat Akhtyamov:

私は、アイデアハンターとこの手の話をするのは好まない。

では、なぜ話しているのですか?)

つまんないよCMEからの出来高を計算したシグナルを皆で待っています。CMEに清算はないのですか?

 
Maksim Neimerik:

見てください、私はフクロウを持っています 最初のロットは設定から取得されます つまり、ユーザーがロットを入力するときに間違えた場合のみ 許容値より小さくなる可能性があります。

例えば、ユーザーが0.05ロットの取引をしたいのに、タイプミスで0.005と書いてしまった場合、それを確認すると、フクロウは0.01ロットを取引します(0.01が最小ロットと仮定しています)

0.005で取引したい、0.05で取引したいと思った場合 - アラートを追加することができます。

これは、誰がそうしたいのか、個人の判断の問題だと思うのですが・・・。

ちなみに、チェックにも失敗したときのコードの一部です(以前にも書きました)。

まず全部やってから、min/maxを確認する必要があります

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
 ...

   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
}

を行い、復帰後すぐに正規化を行う。

return(NormalizeDouble(volume,LotDigit(symb)));
 
Vitaly Muzichenko:

最初にすべてを行い、その後、最小/最大を確認する

を行い、戻ってきたらすぐに正規化する。

一般的には、よし、そろそろこの話は終わりにしよう。

あなたがすぐに見たいくつかの想像上の欠陥が、本質は(私はロットの戻りについて書いた)あなたの注意せずに残っている...

皆さん、ありがとうございました。

 
Maksim Neimerik:

全体として、そろそろこの話は終わりにしましょう。

いくつかの想像上の欠点は一度に見たが、本質(ロットの返却について書いた)は気にせず放置していた......。

皆さん、ありがとうございました。

マキシム、聞こえるか?

私が渡したコードとそのメッセージを読み直してください。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

市場:取引業務なし

ヴィタリー・ムジチェンコ, 2020.01.27 18:37

まず全部やってから、min/maxのチェックをするんです。

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
 ...

   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
}

ですぐに正規化し、リターン

return(NormalizeDouble(volume,LotDigit(symb)));

min/maxを確認してから計算するので、計算内容は何でもいいんです。min/maxのチェックは、計算前ではなく、計算後に行う必要があります。

---------------------------

そして、これが私のものです)