エラー、バグ、質問 - ページ 1898

 
fxsaber:

このEAのロット選択は、元のシンボルでの第三者による取引(他のインスタンスを含む)の影響を受けます。

この作品では、このようなことが起こっています。

ファイルを添付するのを忘れていましたので、 追加しました。そこ

double TradeSizeOptimized(void)
  {
   double price=0.0;
   double margin=0.0;
//--- select lot size
   if(!SymbolInfoDouble(_Symbol,SYMBOL_ASK,price))
      return(0.0);
   if(!OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1.0,price,margin))
      return(0.0);
   if(margin<=0.0)
      return(0.0);

   double lot=NormalizeDouble(AccountInfoDouble(ACCOUNT_MARGIN_FREE)*MaximumRisk/margin,2);
//--- calculate number of losses orders without a break
   if(DecreaseFactor>0)
     {
      //--- select history for access
      HistorySelect(0,TimeCurrent());
      //---
      int    orders=HistoryDealsTotal();  // total history deals
      int    losses=0;                    // number of losses orders without a break

      for(int i=orders-1;i>=0;i--)
        {
         ulong ticket=HistoryDealGetTicket(i);
         if(ticket==0)
           {
            Print("HistoryDealGetTicket failed, no trade history");
            break;
           }
         //--- check symbol
         if(HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol)
            continue;
         //--- check Expert Magic number
         if(HistoryDealGetInteger(ticket,DEAL_MAGIC)!=MA_MAGIC)
            continue;
         //--- check profit
         double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
         if(profit>0.0)
            break;
         if(profit<0.0)
            losses++;
        }
      //---
      if(losses>1)
         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
     }
 
Rashid Umarov:

ファイルを添付するのを忘れていましたので、 追加しました。そこ

そう、そういうことだったんですね。その通りです。

本当だ、私なら違う書き方をしていたかもしれない(コンパイルしていない)。

//--- calculate number of losses orders without a break
   if((DecreaseFactor>0) && HistorySelect(0,TimeCurrent()))
   {
      int    losses=0;                    // number of losses orders without a break

      for(int i=HistoryDealsTotal()-1;i>=0;i--)
      {
         ulong ticket=HistoryDealGetTicket(i);

         if((HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol) &&
            (HistoryDealGetInteger(ticket,DEAL_MAGIC)!=MA_MAGIC))
         {
           double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
           if(profit>0.0)
              break;
           else if(profit<0.0)
              losses++;
         }
      }
      //---
      if(losses>1)
         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
   }


この場をお借りして、先生や他の投稿者の方にお聞きしたいのですが、kodobaseのMT5アドバイザーの中で、取引ロジックに履歴を使っているものはあるのでしょうか?

 

MT5にはうんざりしている - 遅延がひどい - 11個のウィンドウしか開けない -標準のインジケータ

どうすればいいのか-大きな動きではハングするだけ...。


2017.05.24 18:02:43.549 Terminal Opening Broker x64 build 1596 開始
2017.05.24 18:02:43.550 Terminal Windows 7 Ultimate (x64 ベース PC), IE 10.00, AMD Processor Model Unknown, RAM: 9782 / 16357 Mb, HDD: 22385 / 114470 Mb, GMT+03:00。

Quicksaveで100以上のウィンドウと50以上のタンブラーを開くと、CPU負荷が1-5%になる。
削除済み  

AMDプロセッサーモデル不明

PCの起動時やWindowsでは、CPUも検出されるのでしょうか?

 
Vladimir Zubov:

AMDプロセッサーモデル不明

PCの起動時やWindowsでは、CPUも検出されるのでしょうか?

PCの起動時にプロセッサが検出されない - biosにしかありませんが、今は調べません。

Windowsは、MT5と同じように、そう言っています。

実際のCPUはAMD Phenom II 960T (overclocked 3,5 Mhz) , しかし、1つのコアはアンロックされています - それは、合計で5が判明した.

 

端末はSSDのハードディスクにインストールされています。

 

CPUの使用率が高いのは、実際のアカウント でのみ発生することが判明しました。

 

端末が死んで、原油とRTS先物のポジションを決済できない - なんてことだ。

 
-Aleks-:

端末が死んで、原油とRTS先物のポジションを決済できない - なんてことだ。


携帯電話からも?
 
-Aleks-:

端末が死んで、原油とRTS先物のポジションを閉じることができません。

致命的な場合は、Quickまたは電話から閉じることができます。

久しぶりに見たけど(今日の原油も含めて)、もうチャートにインジケーターは 付いてないんだね。