오류, 버그, 질문 - 페이지 1898

 
fxsaber :

이 EA의 로트 선택은 소스 심볼에 대한 제3자 거래(다른 인스턴스 포함)의 영향을 받습니다.

이 작품에서는

파일을 첨부하는 것을 잊었습니다. 이제 에 추가되었습니다. 거기

 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 );
   }


이 기회를 빌어 귀하와 다른 참가자들에게 거래 논리에서 기록을 사용하는 코드베이스에 어떤 종류의 MT5 Expert Advisors가 있습니까?

 

MT5에 지쳤습니다. 속도가 엄청나게 느려집니다. 총 11개의 창이 열려 있습니다. 표시기는 표준 입니다.

해야 할 일 - 큰 움직임에서 멈 춥니 다 ....


2017.05.24 18:02:43.549 Terminal Opening Broker x64 빌드 1596 시작 (JSC 'Opening Broker'')
2017.05.24 18:02:43.550 Terminal Windows 7 Ultimate (x64 based PC), IE 10.00, AMD Processor Model Unknown, RAM: 9782 / 16357 Mb, HDD: 22385 / 114470 Mb, GMT+03:00

Quick에서 100개 이상의 창과 50개 이상의 유리가 열려 있습니다. 프로세서에 1-5%의 부하가 있습니다.
 

AMD 프로세서 모델 알 수 없음

PC와 Windows를 시작할 때 백분율도 결정됩니까?

 
Vladimir Zubov :

AMD 프로세서 모델 알 수 없음

PC와 Windows를 시작할 때 백분율도 결정됩니까?

PC를 시작할 때 프로세서가 감지되지 않습니다. 이것이 다운로드가 설계된 방식이며 BIOS에 무언가가 있지만 지금은 보지 않겠습니다.

Windows는 MT5처럼 씁니다.

실제 프로세서 AMD Phenom II 960T(3.5Mhz 오버클럭)이지만 코어 1개가 잠금 해제되어 총 5개가 됩니다.

 

터미널은 SSD 하드 드라이브에 설치됩니다.

 

CPU 사용량이 많은 것은 실제 계정 에서만 발생한다는 것이 밝혀졌습니다. 아이디어가 있습니까?

 

터미널이 죽었고 석유 및 RTS 선물에 대한 포지션을 청산할 수 없습니다.

 
-Aleks- :

터미널이 죽었고 석유 및 RTS 선물에 대한 포지션을 청산할 수 없습니다.


모바일은 어떻습니까?
 
-Aleks- :

터미널이 죽었고 석유 및 RTS 선물에 대한 포지션을 청산할 수 없습니다.

중요한 경우 Quick 또는 전화로 닫을 수 있습니다.

나는 이것을 오랫동안 관찰하지 않았지만(오늘의 유가를 포함하여) 차트에 더 이상 지표 가 없습니다.