マーケットプレイスの自動チェック - ページ 6 1234567 新しいコメント Evgeniy Zhdan 2017.01.09 09:50 #51 Evgeniy Scherbina: XAUUSDcheckはテストしません。でも、テストが成功するのは、それ以外のものをテストしているから......。 結局、テストは受けたのでしょうか?今朝試したところ、その自動テストは完全に消え、EAは自動テストをバイパスして直接モデレーターにテストされるようになりました。以前のように fxsaber 2017.01.11 16:32 #52 知っておいて損はない。 Solving Atomatic Validation Problems 2017.01.11Stanislav Korotkywww.mql5.com If you're distributing some products for MetaTrader 4/5 via the Market, you probably know that a special "welcome" stage of automatic product validation has been added recently by MetaQuotes on the... Taras Slobodyanik 2017.01.11 16:40 #53 fxsaber: 知っておいて損はない。「十分待ったのにまだ問題があるようなら、サービスデスクに手紙を書いて、もっと待ってください;-)」と。 Stefan Stoyanov 2017.01.11 18:36 #54 であり、当然のごとくOrderSend エラー 131やだ自動検査でテスターに異常がないことすべての指示に従ったところ、うまくいきました。OrderSend エラー 131ウフフフ!!!! Vladislav Andruschenko 2017.01.11 18:56 #55 オートバリュエーションは、営業マンが最初に経験することだと思うんです。私も、不注意による失敗をしたことがあります。 しかし、オートバリデーションは、コードベースから無料でコードをダウンロードし、名前を変えて売ろうとする「おたく」たちの前に立ちはだかる最初の壁です。:-(残念ながら、市場には何千ものプログラムがあり、その中から価値のあるものを2、3個見つけることは困難です。 コードベースに特別なコードを入れて、マーケットが販売に応じないようにするんだ。なぜなら、痛いからです :-( ここでは、顧客を満足させるために何年も、たとえ5年でも、プログラムを開発し、調整し、改善することに費やします。 そして、誰かが完成品をダウンロードして名前を変え、捨て値で市場に 出して、それでおしまい......。 お客さまは「安いということは買う」と思っている。....中国みたいにね。 私はaliexpressに座って - GOPROのための少なくとも5つのスティックは安く注文 - 結果 - 海で一週間 - スティックは錆びました。そりゃあ、錆びないオリジナルスティックを100ポンドで買おうと手が上がるわけがない。しかし、いや、中国ではすでに120ポンドを与え、同じ別のスティックを注文している....................。欲の塊だな......。 Evgeniy Scherbina 2017.01.11 22:20 #56 Stefan Stoyanov:であり、当然のごとくOrderSend エラー 131やだ自動検査でテスターに異常がないこと推薦されたものはすべてやったのに:OrderSend エラー 131ウフフフ!!!! 最小値を確認するだけなので、まったく難しくありません Stefan Stoyanov 2017.01.12 01:55 #57 Evgeniy Scherbina: 最小値を確認するだけなので、まったく難しくありません。これを実現する計算機能がたくさんあるんです。 double LotsOptimized() { int lotDigit=(int)fabs(log10(SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP))); if(!MathIsValidNumber(lotDigit)) lotDigit=0; { double FreeMg =AccountFreeMargin();double Margin =MarketInfo(Symbol(),MODE_MARGINREQUIRED);double Step =MarketInfo(Symbol(),MODE_LOTSTEP);double Minlot =MarketInfo(Symbol(),MODE_MINLOT);double MaxLot =MarketInfo(Symbol(),MODE_MAXLOT);double loty =MathFloor(FreeMg*Risk/100/Margin/Step)*Step; loty = NormalizeDouble(loty,lotDigit);if(loty<Minlot) loty=Minlot;if(loty>MaxLot) loty=MaxLot; Lots=loty; Lots=NormalizeDouble(Lots,lotDigit); return (Lots);}} //================================================================ Automatic check on the Partial Close EA Need help with coding Stefan Stoyanov 2017.01.12 02:11 #58 また、市販の例もあります//+------------------------------------------------------------------+ //| Проверяет объем ордера на корректность | //+------------------------------------------------------------------+ bool CheckVolumeValue(double volume,string &description) { //--- минимально допустимый объем для торговых операций double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); if(volume<min_volume) { description=StringFormat("Объем меньше минимально допустимого SYMBOL_VOLUME_MIN=%.2f",min_volume); return(false); } //--- максимально допустимый объем для торговых операций double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX); if(volume>max_volume) { description=StringFormat("Объем больше максимально допустимого SYMBOL_VOLUME_MAX=%.2f",max_volume); return(false); } //--- получим минимальную градацию объема double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP); int ratio=(int)MathRound(volume/volume_step); if(MathAbs(ratio*volume_step-volume)>0.0000001) { description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f", volume_step,ratio*volume_step); return(false); } description="Корректное значение объема"; return(true); } Stefan Stoyanov 2017.01.12 02:18 #59 OrderSend を呼び出す前に、OrderSend を介してチェックしています。if (CheckVolumeValue(Lots,com) ==false )return(0); いろいろやっても、またエラー131が出ます Evgeniy Scherbina 2017.01.12 09:46 #60 Stefan Stoyanov:多くの計算機能でこのようになります。 double LotsOptimized() { int lotDigit=(int)fabs(log10(SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP))); if(!MathIsValidNumber(lotDigit)) lotDigit=0; { double FreeMg =AccountFreeMargin();double Margin =MarketInfo(Symbol(),MODE_MARGINREQUIRED);double Step =MarketInfo(Symbol(),MODE_LOTSTEP);double Minlot =MarketInfo(Symbol(),MODE_MINLOT);double MaxLot =MarketInfo(Symbol(),MODE_MAXLOT);double loty =MathFloor(FreeMg*Risk/100/Margin/Step)*Step; loty = NormalizeDouble(loty,lotDigit);if(loty<Minlot) loty=Minlot;if(loty>MaxLot) loty=MaxLot; Lots=loty; Lots=NormalizeDouble(Lots,lotDigit); return (Lots);}} //================================================================ロットデジットは常に0を計算する厄介なバカです。ドキュメントの例にはありません。どうやら、たくさんのブラケットを持つことがお好きなようですね?また、これ。FreeMg*Risk/100/Margin/Step...100はどこから来たのか?明らかに天井からそれは、文字列の多さです。本当に多いですね、何を計算しているのでしょうか? 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
XAUUSDcheckはテストしません。でも、テストが成功するのは、それ以外のものをテストしているから......。
知っておいて損はない。
であり、当然のごとく
OrderSend エラー 131
やだ
自動検査でテスターに異常がないこと
すべての指示に従ったところ、うまくいきました。
OrderSend エラー 131
ウフフフ!!!!オートバリュエーションは、営業マンが最初に経験することだと思うんです。
私も、不注意による失敗をしたことがあります。
しかし、オートバリデーションは、コードベースから無料でコードをダウンロードし、名前を変えて売ろうとする「おたく」たちの前に立ちはだかる最初の壁です。:-(
残念ながら、市場には何千ものプログラムがあり、その中から価値のあるものを2、3個見つけることは困難です。
コードベースに特別なコードを入れて、マーケットが販売に応じないようにするんだ。なぜなら、痛いからです :-( ここでは、顧客を満足させるために何年も、たとえ5年でも、プログラムを開発し、調整し、改善することに費やします。
そして、誰かが完成品をダウンロードして名前を変え、捨て値で市場に 出して、それでおしまい......。 お客さまは「安いということは買う」と思っている。....
中国みたいにね。
私はaliexpressに座って - GOPROのための少なくとも5つのスティックは安く注文 - 結果 - 海で一週間 - スティックは錆びました。
そりゃあ、錆びないオリジナルスティックを100ポンドで買おうと手が上がるわけがない。しかし、いや、中国ではすでに120ポンドを与え、同じ別のスティックを注文している....................。欲の塊だな......。
であり、当然のごとく
OrderSend エラー 131
やだ
自動検査でテスターに異常がないこと
推薦されたものはすべてやったのに:
OrderSend エラー 131
ウフフフ!!!!最小値を確認するだけなので、まったく難しくありません。
これを実現する計算機能がたくさんあるんです。
{ int lotDigit=(int)fabs(log10(SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP)));
if(!MathIsValidNumber(lotDigit)) lotDigit=0;
{
double FreeMg =AccountFreeMargin();
double Margin =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Step =MarketInfo(Symbol(),MODE_LOTSTEP);
double Minlot =MarketInfo(Symbol(),MODE_MINLOT);
double MaxLot =MarketInfo(Symbol(),MODE_MAXLOT);
double loty =MathFloor(FreeMg*Risk/100/Margin/Step)*Step;
loty = NormalizeDouble(loty,lotDigit);
if(loty<Minlot) loty=Minlot;
if(loty>MaxLot) loty=MaxLot;
Lots=loty;
Lots=NormalizeDouble(Lots,lotDigit);
return (Lots);}}
//================================================================
また、市販の例もあります
OrderSend を呼び出す前に、OrderSend を介してチェックしています。
if (CheckVolumeValue(Lots,com) ==false )return(0);
いろいろやっても、またエラー131が出ます
多くの計算機能でこのようになります。
{ int lotDigit=(int)fabs(log10(SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP)));
if(!MathIsValidNumber(lotDigit)) lotDigit=0;
{
double FreeMg =AccountFreeMargin();
double Margin =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Step =MarketInfo(Symbol(),MODE_LOTSTEP);
double Minlot =MarketInfo(Symbol(),MODE_MINLOT);
double MaxLot =MarketInfo(Symbol(),MODE_MAXLOT);
double loty =MathFloor(FreeMg*Risk/100/Margin/Step)*Step;
loty = NormalizeDouble(loty,lotDigit);
if(loty<Minlot) loty=Minlot;
if(loty>MaxLot) loty=MaxLot;
Lots=loty;
Lots=NormalizeDouble(Lots,lotDigit);
return (Lots);}}
//================================================================
ロットデジットは常に0を計算する厄介なバカです。ドキュメントの例にはありません。どうやら、たくさんのブラケットを持つことがお好きなようですね?
また、これ。FreeMg*Risk/100/Margin/Step...100はどこから来たのか?明らかに天井から
それは、文字列の多さです。本当に多いですね、何を計算しているのでしょうか?