マーケットで公開されているEAにおける最小ストップの確認。 - ページ 12

 
Igor Volodin:

その方法ではポイントで割ることができないので、SymbolInfoDouble(symToWorkmodify,SYMBOL_POINT) 関数の値がゼロに等しくなる可能性があります。
これは、他の市場機能にも当てはまります。

例えば、計算でAccountInfoInteger(ACCOUNT_LEVERAGE) を使用すると、OnInit でこの関数が 0 を返した場合、一部の Expert Advisor が 2010 年チャンピオンシップでZero divide エラーを発生してクラッシュ することがありました。

リファレンスを見ると、SymbolInfoDouble(), SymbolInfoInteger() は必ずエラーチェックが必要です。
 
Vladimir Gribachev:

そこまで言うなら、こうだ

もう一度言いますが、このトピックはストプレベルが0である場合の話であることにご注意ください。ストプレレベルが0より大きいテスト結果を引用していますね。

そして、もしそれが悪いことなら、Andrey F. Zelinskyが 正しく指摘しているように

130回目のエラーでチェックを入れ、ストップに+1することができます。しかし、まったく意味がない。
エラー130のチェックは、プログラムの他のエラーと同じように、普通に行われます。しかし、ストップに1を加えても、第一に何の役にも立たないし、第二に、悪い解決策だ。
 
Ihor Herasko:

もう一度言いますが、このトピックはストプレベルが0であるときの状況についてですので、ご注意ください。ストパーレベルが0より大きいテスト結果を出した。

MetaQuotes-Demoサーバーのstoplevel = 0の場所を教えてください。

ストップレベル=0であっても、最小のストップロスはスプレッドの値に等しくなります。

スプレッド=0もなら、そういうブローカーを教えてくれれば、そこに資金を切りに行きます。

エラー130のチェックは、プログラムの他のエラーと同様、通常の作業です。ストップに1を加えることについては、第一に何の役にも立たないし、第二に判断ミスだ。

誰がうまいと言ったか。

チェックコードを掲載したところ、検証のためにフクロウを入れ、モデレーターがチェックするサーバーでこのチェックが機能することを示しました。

システムをコケにし、トピ主が望んだ解決策を見出せない場合は、「脳みそを爆発さ せよう!」というトピックを新たに作成する必要があるのです。

ZS. トピックキーパーは、マーケットでテストされるためのソリューションが必要だったのです。モデレーターは自分のサーバーでテストするのであって、アルプスでもどこでもいいわけではありません。

 
Vladimir Gribachev:

スプレッドも0なら、そういうブローカーを教えてくれれば、そこに生地を切りに行きます。

いいえ、手数料が発生します。
 

:-)読んでいて微笑ましくなりました。


私は、サーバーが0を返したらどうするのか、あなたのエゴをほどほどにしろとは聞いていません。

この投稿は、コミュニケーションのためではなく、Marketに製品を投入しているプログラマーの具体的な事例として、製品を1つも売ったことがない人から、何をすべきか、何をすべきでないかを聞くのは不思議なことです。

というのがトピックで、市場での検証の話をしています。

EAが何をチェックすべきか、エラーをどう処理するかという話ではない。- 私はそれでいいと思っています。

 
Vladislav Andruschenko:

サーバーが0を返した場合の処理については聞いていません

それなら、件名をもっとはっきりさせるべきでしたね。

現在、90%のブローカーがフローティングスプレッドとミニストップを 採用しており、リターンは0 です。

 
Ihor Herasko:

それならスレタイをもっとはっきりさせないと。

サーバーが0を返した場合、マーケットプレイスのエラーを回避する方法について質問していたのですが、モデレーターがstoploss = 1を置くと、EAは0であるためmin stopに変更できません。

EAがエラー130を 返し、ストップロスが間違っているから変更しろ、と言っているのは明らかですが、マーケットプレイスではこのコマンドは使えません。

私の投稿はこのように聞こえました。

皆さん、こんにちは。

マーケットプレイスの特徴として、min stopの値を全てチェックする必要があります。

変数の値がmin-stopより小さい場合は、min-stopを代入し、エラー130が 発生しないようにします。

現在、90%のブローカーがフローティングスプレッドと最小STOP、利回り0を採用しています。

すべての変数をmin stopに代入するコード構成が ある。

 int OnInitLevels(string symToWorkmodify)
  {
   if(lot<SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MIN))lots=SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MIN);else
   if(lot>SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MAX))lots=SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MAX);else lots=lot;
   if(StopLoss>0 && StopLoss<SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL))StopLosss=(int)SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL);else StopLosss=StopLoss;
   if(TakeProfit>0 && TakeProfit<SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL))TakeProfits=(int)SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL);else TakeProfits=TakeProfit;
   if(TrailingStop>0 && TrailingStop<SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL))TrallingStops=(int)SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL);else TrallingStops=TrailingStop;
   if(TakeProfitALL>0 && TakeProfitALL<SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL))TakeProfitsAver=(int)SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL);else TakeProfitsAver=(int)TakeProfitALL;
   if(TrailingStop>0 && TrailingStop<SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL))TrallingStops=(int)SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL);else TrallingStops=TrailingStop;
   return(0);
  }

しかし、今はどこでもminstop=0なので、マーケットプレイスではもう通用しないのです。

誰がこの問題に取り組んでいるのでしょうか?

 
Vladimir Gribachev:

MetaQuotes-Demoサーバーのstoplevel = 0の場所を教えてください。

MetaQuotesのサーバーではなく、マーケットプレイスでのチェックで(スレッドの最初の投稿を参照)。

が、市場ではもはや通用しない。なぜなら、どこでも min stoplevel = 0 になってしまったからだ。

ウラジーミル・グリバチョフ

min stoploss = 0 であっても、min stop loss はスプレッドに等しい。

事実ではありません。スプレッドが2つ、3つある可能性もあります。もしかしたら、そのような場面に遭遇したことがないだけかもしれません。しかし、それは存在しないことを意味するものではありません。何のことかわからない人は、避けようとするかもしれませんね。

 
Ihor Herasko:

MetaQuotesのサーバー上ではなく、マーケットプレイスで確認する場合(スレッドの最初の投稿を参照)。

事実ではありません。スプレッドが2つ、3つある場合があります。もしかしたら、そういう場面に遭遇したことがないだけかもしれません。でも、存在しないわけではありません。私が紹介した証券会社の状況も全く同じです。

i>そこなんだよ、1-2-3スプレッドのハードミニストップを設定するのは言い訳なんだよ。

フローティングストップの問題を解決するには、本当の意味でのソリューションが必要です。

どんなフローティングストップがあるのか、その方法を教えてくれないんです。ごめんなさい それとも教えてくれないの?

 

質問をはっきりさせた方がいいと思います ))。その間、あなたは混乱しています。

я не спрашивал что делать если сервер возвращает 0

と郵便で送る。

サーバーが0を返した場合、マーケットプレイスエラーを回避する方法について質問していました