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

 
테스트는 정확하고 매우 정확하게 수행되어야 합니다.

게다가 재현 가능합니다. 또한 소스에서 자신의 dll을 컴파일하지 않고 다른 사람의 dll을 실행하는 것은 불가능합니다.
 

모두 좋은 하루 되세요, 이것에 대해 묻고 싶습니다

나는 초보자입니다 누군가 설명 할 수 있습니까

러시아뿐만 아니라 다른 거래자들과 데모 계정을 개설한 후 문제가 발생했습니다. 어떤 이유로 유리에 로트를 넣을 수 없습니다. 나는 할 수 있지만 시장 가격에! 외환 플랫폼.

내가 무엇을 가장 잘 모르는지 설명하십시오!

BCS를 통해 모스크바 거래소에서 모든 것이 정상입니다. 나는 유리를 통해 어디든 갈 수 있고 어쨌든 나의 신청은 받아들여진다. 하지만 FX단말기에서는 그런 일이 통하지 않고, 스프레드가 큰 시장 가격 밖에 살 수 없다!

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
, то позиции по каждому символу разрешается закрывать только в том порядке, в котором они были открыты — сначала самую старую, затем более новую и т.д. При попытке закрыть позиции в ином порядке будет получена ошибка. Уровень залоговых средств, при достижении которого происходит принудительное закрытие самой убыточной позиции (Stop Out...
 
작동하지 않는 사이트에서 검색
 
Vladimir Pastushak :
작동하지 않는 사이트에서 검색
.
 
Alexey Viktorov :
.

이제 이미 작동하고 있습니다.

 
Renat Fatkhullin :
테스트는 정확하고 매우 정확하게 수행되어야 합니다.

테스트를 수행할 계획이 아니었고 가능성을 평가하는 데만 필요했습니다.

좋아, 우리는 그러한 화려한 형태로 당신이 거부했다고 가정할 것입니다. 나는 위의 VS 소스를 제공했습니다

 

안녕하세요!

후행 함수.

전략 테스터 에서 jamb이 4756에 어떤 오류를 제공하는지 알려주세요. 스크립트에서 실행하고 작동합니다.

 int Tralling( int PointsTral= 200 )
  {
   MqlTradeRequest Request;
   MqlTradeResult Result;
   int PosTot, i, digits;
   string Symbols[]= { "" };
   double SymbPt,sl,tp,
          PriceOpen[]= { 0 };
   i= 0 ;
   PosTot= PositionsTotal ();
   if (PosTot> 0 )
     {
       while (i<PosTot)
        {
         Symbols[i] = PositionGetSymbol (i);
         digits=( int ) SymbolInfoInteger (Symbols[i], SYMBOL_DIGITS );
         if ( PositionSelect (Symbols[i]))
           {
            PriceOpen[i] = PositionGetDouble ( POSITION_PRICE_OPEN );
            SymbPt = SymbolInfoDouble (Symbols[i], SYMBOL_POINT );
             if ( PositionGetInteger ( POSITION_TYPE ) == 0 )
              {
               if ( SymbolInfoDouble (Symbols[i], SYMBOL_BID ) >= PriceOpen[i]+(SymbPt*PointsTral))
                 {
                   if ( SymbolInfoDouble (Symbols[i], SYMBOL_BID )> PositionGetDouble ( POSITION_SL )+(SymbPt*PointsTral))
                    {
                     sl= SymbolInfoDouble (Symbols[i], SYMBOL_BID )-(SymbPt*PointsTral);
                     tp= PositionGetDouble ( POSITION_TP );
                     Request.action= TRADE_ACTION_SLTP ;
                     Request.symbol = Symbols[i];
                     Request.sl= NormalizeDouble (sl,digits);
                     Request.tp= NormalizeDouble (tp,digits);
                     Request.position= PositionGetInteger ( POSITION_TICKET );
                     if (! OrderSend (Request,Result))
                         Alert ( "Ошибка Треллинга " , GetLastError ());
                    }
                 }
              }

             if ( PositionGetInteger ( POSITION_TYPE ) == 1 )
              {
               if ( SymbolInfoDouble (Symbols[i], SYMBOL_ASK ) <= PriceOpen[i]-(SymbPt*PointsTral))
                 {
                   if ( SymbolInfoDouble (Symbols[i], SYMBOL_ASK )< PositionGetDouble ( POSITION_SL )-(SymbPt*PointsTral))
                    {
                     sl= SymbolInfoDouble (Symbols[i], SYMBOL_ASK )+(SymbPt*PointsTral);
                     tp= PositionGetDouble ( POSITION_TP );
                     Request.action= TRADE_ACTION_SLTP ;
                     Request.symbol = Symbols[i];
                     Request.sl= NormalizeDouble (sl,digits);
                     Request.tp= NormalizeDouble (tp,digits);
                     Request.position= PositionGetInteger ( POSITION_TICKET );
                     if (! OrderSend (Request,Result))
                         Alert ( "Ошибка Треллинга " , GetLastError ());
                    }
                 }
              }

           }
         else
           {
             Alert ( "Не удалось выделить оредер по символу. " , Symbols[i], " Ошибка " , GetLastError ());
           }
         i++;
        }
     }
   return ( 1 );
  }

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Тикет позиции. Уникальное число, которое присваивается каждой вновь открытой позиции. Как правило, соответствует тикету ордера, в результате которого она была открыта, за исключением случаев изменения тикета в результате служебных операций на сервере. Например, начисления свопов переоткрытием позиции. Для нахождения ордера, которым была открыта...
 

안녕하세요!

오류를 찾을 수 없습니다. 이것은 후행 정류장입니다. 스크립트와 함께 차트에 던지면 작동합니다. 전략 테스터 에서 오류 4756(서버로 보낼 수 없음)을 반환합니다.

도와주세요, 제발!

 int Tralling( int PointsTral= 200 )
  {
   MqlTradeRequest Reques;
   MqlTradeResult Result;
   int PosTot, i, digits;
   string Symbols;
   double SymbPt,sl,tp,
          PriceOpen;
   i= 0 ;
   PosTot= PositionsTotal ();
   if (PosTot> 0 )
     {
       while (i<PosTot)
        {
         Symbols = PositionGetSymbol (i);
         digits=( int ) SymbolInfoInteger (Symbols, SYMBOL_DIGITS );
         if ( PositionSelect (Symbols))
           {
            PriceOpen = PositionGetDouble ( POSITION_PRICE_OPEN );
            SymbPt = SymbolInfoDouble (Symbols, SYMBOL_POINT );
             if ( PositionGetInteger ( POSITION_TYPE ) == 0 )
              {
               if ( SymbolInfoDouble (Symbols, SYMBOL_BID ) >= PriceOpen+(SymbPt*PointsTral))
                 {
                   if ( SymbolInfoDouble (Symbols, SYMBOL_BID )> PositionGetDouble ( POSITION_SL )+(SymbPt*PointsTral))
                    {
                     sl= SymbolInfoDouble (Symbols, SYMBOL_BID )-(SymbPt*PointsTral);
                     tp= PositionGetDouble ( POSITION_TP );
                     Reques.action= TRADE_ACTION_SLTP ;
                     Reques.symbol = Symbols;
                     Reques.position= PositionGetInteger ( POSITION_TICKET );
                     Reques.sl= NormalizeDouble (sl,digits);
                     Reques.tp= NormalizeDouble (tp,digits);
                     if (! OrderSend (Reques,Result))
                         Alert ( "Ошибка Треллинга " , GetLastError ());
                    }
                 }
              }

             if ( PositionGetInteger ( POSITION_TYPE ) == 1 )
              {
               if ( SymbolInfoDouble (Symbols, SYMBOL_ASK ) <= PriceOpen-(SymbPt*PointsTral))
                 {
                   if ( SymbolInfoDouble (Symbols, SYMBOL_ASK )< PositionGetDouble ( POSITION_SL )-(SymbPt*PointsTral))
                    {
                     sl= SymbolInfoDouble (Symbols, SYMBOL_ASK )+(SymbPt*PointsTral);
                     tp= PositionGetDouble ( POSITION_TP );
                     Reques.action= TRADE_ACTION_SLTP ;
                     Reques.symbol = Symbols;
                     Reques.position= PositionGetInteger ( POSITION_TICKET );
                     Reques.sl= NormalizeDouble (sl,digits);
                     Reques.tp= NormalizeDouble (tp,digits);
                     if (! OrderSend (Reques,Result))
                         Alert ( "Ошибка Треллинга " , GetLastError ());
                    }
                 }
              }

           }
         else
           {
             Alert ( "Не удалось выделить оредер по символу. " , Symbols[i], " Ошибка " , GetLastError ());
           }
         i++;
        }
     }

   return ( 1 );
  }
 
Igor Makanu :

테스트를 수행할 계획이 아니었고 가능성을 평가하는 데만 필요했습니다.

좋아, 우리는 그러한 화려한 형태로 당신이 거부했다고 가정할 것입니다. 나는 위의 VS 소스를 제공했습니다

당신은 예외적인 주장을 했고 그것을 증명하지 못했습니다. 또한 금지된 dll을 게시한 것은 이번이 처음이 아닙니다.

재생할 소스가 없습니다.

 
Renat Fatkhullin :

당신은 예외적인 주장을 했고 그것을 증명하지 못했습니다. 또한 금지된 dll을 게시한 것은 이번이 처음이 아닙니다.

재생할 소스가 없습니다.

성명서의 독점성은 무엇입니까? 나는 오래된 터미널에 대한 성능 측정이 아주 좋은 결과를 보여주었다는 것을 알았습니다.

오늘 PC에서 확인했는데 결과는 1:1 MT4 / MT5이고 랩톱에서 다시 확인했지만 차이점은 없었습니다. 백그라운드에서 Win10 서비스가 디스크를 "니블링"한 것 같습니다 테스트, 나는 노트북에서 활성 작업을 설정하지 않았습니다. Vin 기본적으로 야간 시간으로 설정했습니다.

밤에는 여전히 차이점이 무엇인지 알아내고자 하는 열망이 있었습니다. 오늘 원칙에 따라 - 작동하도록 하십시오. 주석으로 소스 코드를 작성하거나 시작하기 위해 일부를 잘라내는 요점이 보이지 않습니다. 상황 분석이나 토론, 하고 싶지 않습니다.


새 빌드의 버그에서:

이것은 터미널 로그의 올바른 정보가 아닙니다.

2020.05.06 19:03:03.895 단말기 Windows 10 빌드 18363, Intel Core i3 M 380 @ 2.53GHz, 0/2Gb 메모리, 149/237Gb 디스크, IE 11, UAC, GMT+4

작업 관리자에서 Win free 920MB/2.97GB, 이전 빌드에는 시스템에 대한 더 정확한 정보가 있었습니다.