取引ロボットをマーケットにリリースする際のバリデーションエラー。 - ページ 7

 

バリデーターがまた故障したのか?


 
Sergey Fedotov:

また同じ失敗を...。

EURUSD,H1ストラテジーテスターレポート総取引数38件 NZDUSD,H1テスト取引操作なし GBPUSDcheck,M30テスター時間かかり すぎストラテジーテスターレポート見つかりませんでした。

一種のパターンのような気がしています。EURUSDの取引回数の違いで、全く同じ出力が出ました。

一番面白いのは、OnInit()で既に無条件にBUYトレードを開始し、5分後にクローズすることを書いていることです。相変わらずの糞っぷり「ノートレード」!?

int OnInit() {
   string message="";
   int stops_level=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);
   iTrailStart=inpTrailStart;
   iTrailStart2=inpTrailStart2;
   iTrailStartL=inpTrailStartL;
   //---
   if(stops_level>0) {
      if(inpTrailStart<stops_level+3) iTrailStart=stops_level+3;
      if(inpTrailStart2<stops_level+3) iTrailStart2=stops_level+3;
      if(inpTrailStartL<stops_level+3) iTrailStartL=stops_level+3;
   }
   
   Comment("");
   EventSetMillisecondTimer(300);
          
   if(IsTesting()) test_ticket=OrderSend(_Symbol,OP_BUY,SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN),NormalizeDouble(Ask,_Digits),30,0.0,0.0,"NZT-48_test",33333,0,clrNONE);
   
   return(INIT_SUCCEEDED);
}//-------------------------------------- End OnInit ---------------------------------------- 
100%で開いているのに、どうしてオペレーションがないんだ! あるいは、1回では足りない、カウントしないのか!?どなたか「舵取り役」の方、ご回答をお願いします。
 
Andrey Kaunov:

パターン化されているように感じます。EURUSDの取引回数に差がありますが、同じように出力しています。

一番面白いのは、OnInit()で既に無条件にBUYトレードを開始し、5分後にクローズすることを書いていることです。相変わらずの糞っぷり「ノートレード」!?

どうしてトレードがないんだ!ここで100%開かれても、1トレードでも足りなければ、カウントされないんだ!?誰か「舵取り」をしている人、答えを教えてください。
資金不足 のためのチェックストラテジーテスターで、資金を0.1ドルに設定します。Expert Advisor は、資金不足のメッセージを送信し、動作を停止するはずです。メッセージの不在と仕事の停止もトレードにはならない。私も悶々としてました))))
 
"もう一度魚の小銭のために..."


一昨日うまくいった仕事が全部「攻略テスターレポートが見つかりません」と拒否されるようになった
新しい(古い)仕掛けは?もっと多くの開発者を吹き飛ばすために、他にどんなことを思いついたのでしょうか。どこを見ればいいのか、何を直せばいいのか。 バグというより、とんでもないことに......。
この話題はすでに冒頭で出ていましたが、数ページ閲覧しても、まだよくわかりません。
同じ作品でも、最初は不合格、次に無修正で合格。
 
もしあなたが「複雑すぎるロジック」や「論理的エラー」で問題を説明したいのなら、全く同じエラーを起こす「単細胞」ロボットのコードを以下に示します。" "ストラテジーテスターのレポートが見つかりません" "
#property copyright "V.Temchenko"
#property link      "Mailto:vasily.4896@gmail.com"
#property version   "1.00"
#property strict
//-----------------
input double   Lots        =0.10;          
input int      Step        =100;  
input int      TP          =450;  
input int      SL          =900;  

//===================================================================
void OnTick(){
double freeMargin, lot, minLot, maxLot, volStep, tp=0,sl=0;
int ticket=0, b=0, s=0;
long dealMax;
//bool BuyOK=false, SellOK=false;
//-------
 for(int i=0; i<=OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS)) { 
   if(OrderType()==OP_BUY)   b++; 
   if(OrderType()==OP_SELL)  s++;
 }} //-- for
//-----------
   freeMargin=AccountFreeMargin(); 
   minLot=MarketInfo(Symbol(),MODE_MINLOT); 
   maxLot=MarketInfo(Symbol(),MODE_MAXLOT);
   volStep=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
   dealMax=AccountInfoInteger(ACCOUNT_LIMIT_ORDERS);

// ----------------------- Preliminary check -----------------------  
 lot=Lots; if(lot<minLot) lot=minLot; // Без lot=minLot; не проходит
   if(freeMargin<=0) return;                 // check freeMargin 
   if(dealMax>0 && OrdersHistoryTotal()==dealMax) return; // check max allowed orders number
   if(lot<minLot) return;                    // check MinVolume
   if(lot>maxLot) lot=maxLot*0.9;            // check MaxVolume
   lot=int(lot/volStep)*volStep;             // normalize volume-step

// ----------------------- Send order -----------------------  
   if(b < 1) {  
      if(AccountFreeMarginCheck(Symbol(),OP_BUY,lot)<=0) return; // check rest Money after deal
         if(TP>0) tp=NormalizeDouble(Ask+TP*Point,Digits);
         if(SL>0) sl=NormalizeDouble(Ask-SL*Point,Digits);
      ticket=OrderSend(Symbol(),OP_BUY,lot,NormalizeDouble(Ask,Digits),350,sl,tp,"",123,0,clrBlue);
            if(ticket>0) { b++; return; } else { Print("_1_ Can't open buy."); return; } 
   } //--
   if(s < 1) {  
      if(AccountFreeMarginCheck(Symbol(),OP_SELL,lot)<=0) return; // check rest Money after deal
         if(TP>0) tp=NormalizeDouble(Bid-TP*Point,Digits);
         if(SL>0) sl=NormalizeDouble(Bid+SL*Point,Digits);
         ticket=OrderSend(Symbol(),OP_SELL,lot,NormalizeDouble(Bid,Digits),350,0,0,"",123,0,clrRed);
            if(ticket>0) { s++; return; } else { Print("_2_ Can't open sell"); return; } 
   } //--
//-----------
   return;
 } //-- OnTick()
// ==================================================================================================







すでにここでは、極めて原始的なロジックであるため、ロジックの間違いはありえない。)

 

すべて正常に起動しています。

ストラテジーテスターのレポートが見つかりません」というエラーは出ません...。

今、アップデートしたところ、すべてOKです。

 
Vladislav Andruschenko:

すべて正常に起動しています。

ストラテジーテスターのレポートが見つかりません」というエラーは出ません...。

今、アップデートしたところ、すべてOKです。

もしそうなら、修正されています。 - 情報をありがとうございます。100%合格ロボットでこれからチェックします。

------- 21:02追記 --------------


まさか!?

上に載せたコードの二十数行のロボットさえも通らない。
 

類似している。MT4(MT5は試していません)にエキスパートを追加すると、バリデーターが拒否状態になります。そして、スタートボタンを押してから数秒で


 
Evgeniy Zhdan:

類似している。MT4(MT5は試していません)にエキスパートを追加すると、バリデーターが拒否状態になります。そして、スタートボタンを押してから数秒で


2秒のリジェクトは、同じファイルを2回読み込んだ場合です。別のファイルで上書きするか、同じファイルを再コンパイルしてください ;)
ちょっとした遊び心で、私がバリデーションのコードを書いた同僚のファイルを何十個も「バリデーションチェック」してみました(すべて私がバリデーターでチェックし、同僚が正常に公開しました)。
今日も一人も合格していません!
これは偶然に 12台のロボットがすり抜けたということなのか? 運が良かっただけなのか? 今日から私は特に曲者なので......。
不思議なものですね、この一連の流れは。毎日、新しいものが出てくる。

 
Vasyl Temchenko:
もしあなたが「複雑すぎるロジック」や「論理エラー」で問題を説明したいのであれば、全く同じエラーを出す「単細胞」ロボットのコードを以下に示します: " "strategy tester report not found " "

すでにここでは、極めて原始的なロジックのため、論理的な間違いはありえないのです;)

サーバーが新しいバージョンに更新されている、どこかがネジ止めされていない、手を加えた、バグがまた出てきたなど、説明するのは簡単なのかもしれませんね。

理由: