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

 

도움말은 다음과 같이 말합니다.

"시장" 및 "교환" 실행 모드에서 "반품" 채우기 정책은 모든 유형의 주문 에 대해 항상 허용됩니다 . 다른 유형의 권한은 SYMBOL_FILLING_FOK 및 SYMBOL_FILLING_IOC 속성을 사용하여 확인합니다.

그러나 항상 그런 것은 아닙니다. 따라서 Robo "Return"의 계정에서는 Pro 계정이나 ECN 계정에서 작동하지 않습니다.

 
Andrey Dik :

도움말은 다음과 같이 말합니다.

"시장" 및 "교환" 실행 모드에서 "반품" 채우기 정책은 모든 유형의 주문 에 대해 항상 허용됩니다 . 다른 유형의 권한은 SYMBOL_FILLING_FOK 및 SYMBOL_FILLING_IOC 속성을 사용하여 확인합니다.

그러나 항상 그런 것은 아닙니다. 따라서 Robo "Return"의 계정에서는 Pro 계정이나 ECN 계정에서 작동하지 않습니다.

방금 로보트를 만났습니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

fxsaber , 2016.10.20 08:24

모든 거래 서버의 SB
//+------------------------------------------------------------------+
//| Get the property value "ORDER_TYPE_FILLING"                      |
//+------------------------------------------------------------------+
ENUM_ORDER_TYPE_FILLING COrderInfo::TypeFilling( void ) const
  {
   return (( ENUM_ORDER_TYPE_FILLING ) OrderGetInteger ( ORDER_TYPE_FILLING ));
  }

ALWAYS는 테스터에서 ENUM_ORDER_TYPE_FILLING::ORDER_FILLING_ RETURN 을 반환합니다.

따라서 COrderInfo::TypeFilling()을 통해 OrderModify에 채우기가 지정된 경우 동일한 RoboForexEU-MetaTrader 5에서 [Unsupported filling mode] 논리적 오류가 발생합니다. 그러나 MetaQuotes-Demo에서는 이 오류가 발생하지 않습니다. 개발자의 서버가 잘못 구성되어 있습니까?



 
Andrey Dik :

도움말은 다음과 같이 말합니다.

"시장" 및 "교환" 실행 모드에서 "반품" 채우기 정책은 모든 유형의 주문 에 대해 항상 허용됩니다 . 다른 유형의 권한은 SYMBOL_FILLING_FOK 및 SYMBOL_FILLING_IOC 속성을 사용하여 확인합니다.

그러나 항상 그런 것은 아닙니다. 따라서 Robo "Return"의 계정에서는 Pro 계정이나 ECN 계정에서 작동하지 않습니다.

"반환" 채우기 설정이 모든 거래 서버에 대해 기본적으로 설정되어 있다는 의혹이 있습니다(적어도 FxPro에서는

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

서버의 채우기 모드

카르푸토프 블라디미르 , 2016.10.14 19:18

채우기 모드 "돌아가기":

반품

아이디 없음

 

이 모드는 시장(구매 및 판매), 지정가 및 지정가 지정가 주문에 사용되며 "시장 실행" 및 "거래소 실행" 모드에서만 사용됩니다. 부분실행의 경우 잔여 물량이 있는 시장가 또는 지정가 주문은 취소되지 않고 계속 운영됩니다.

다음은 "반품" 충전 모드 에 대한 무역 조직의 답변입니다.

MT5 전문가는 Metaquotes를 통해 반환이 기본적으로 사용되며 채우기에 대해 아무 것도 선택하지 않을 때 적용됨을 확인했습니다.

)

즉, 일종의 그루터기입니다.
 
Karputov Vladimir :

"반환" 채우기 설정이 모든 거래 서버에 대해 기본적으로 설정되어 있다는 의혹이 있습니다(적어도 FxPro에서는

즉, 일종의 그루터기입니다.

일부 사무실(특히 최근에 MT5를 출시한 사무실)에서는 채우기 유형을 명시적으로 지정해야 합니다. 그렇지 않으면 오류가 발생합니다.

동일한 Robo에서 서버는 "반환" 채우기 검사에 대해 true를 반환하지만 실제로 이러한 유형의 채우기는 작동하지 않습니다. 요컨대, 이러한 채우기와 완전한 혼동입니다.

 
이 주제와 관련이 없는 댓글은 " CHART_SHOW_OHLC for OBJ_CHART "로 이동되었습니다.
 
분명히 나는 속도를 늦추고 있다
class A
{
public :
   virtual int f()
  {
     Print ( __FUNCSIG__ );
    
     return ( 0 );
  }
};

class B : public A
{
public :
   virtual int f()
  {
     Print ( __FUNCSIG__ );
    
     return ( 0 );
  }
};

void OnStart ()
{
//  A* b = new B;
  B* b = new B;
  
  ((A*)b).f();

   delete b;
}
가상이 자식에서 재정의되면 기본 가상에 절대 도달하지 않는다는 것을 올바르게 이해하고 있습니까? 저것들. b에서 A::f를 호출할 방법이 없습니다.
 
fxsaber :
가상이 자식에서 재정의되면 기본 가상에 절대 도달할 수 없다는 것을 올바르게 이해하고 있습니까? 저것들. b에서 A::f를 호출할 방법이 없습니다.

거의. C++에서는 다음 표기법이 허용됩니다.

B* b = new B;
b.A::f();

하지만 여기서는 불가능합니다. 따라서 목발로만 독점적으로:

class B : public A
{
public :
   virtual int f()
  {
     Print ( __FUNCSIG__ );
    
     return ( 0 );
  }
  
   int f1()
  {
     return A::f();
  }
};
 
Комбинатор :

거의. C++에서는 다음 표기법이 허용됩니다.

B* b = new B;
b.A::f();

그렇다면 C++에서 작동하는 이유를 이해할 수 없습니다. 결국 가상 메소드 테이블에서 재정의된 가상은 완전히 재정의되어야 한다. 그리고 기지에서 흔적이 없어야합니다.

하지만 여기서는 불가능합니다. 따라서 목발로만 독점적으로:

class B : public A
{
public :
   virtual int f()
  {
     Print ( __FUNCSIG__ );
    
     return ( 0 );
  }
  
   int f1()
  {
     return A::f();
  }
};
그러면 A* b = 새로운 B; 맞지 않습니다.
 
fxsaber :

결국 가상 메소드 테이블에서 재정의된 가상은 완전히 재정의되어야 한다. 그리고 기지에서 흔적이 없어야합니다.

유형이 명시적으로 지정되면 가상 함수 테이블을 사용하지 않고 메서드가 직접 호출됩니다.

이렇게 하면 본체가 있는 경우 순수한 가상 함수를 호출할 수도 있습니다.

fxsaber :
그러면 A* b = 새로운 B; 맞지 않습니다.

이러한 경우 기본 클래스의 비가상 메서드로 함수의 내부를 전송하고 가상 메서드 내에서 호출하기 위해 또 다른 목발이 필요합니다. 그러면 기본 클래스와 상속자에서 가상이 아닌 메서드를 명시적으로 호출할 수 있습니다.

 
Комбинатор :

유형이 명시적으로 지정되면 가상 함수 테이블을 사용하지 않고 메서드가 직접 호출됩니다.

이렇게 하면 본체가 있는 경우 순수한 가상 함수를 호출할 수도 있습니다.

이러한 경우 기본 클래스의 비가상 메서드로 함수의 내부를 전송하고 가상 메서드 내에서 호출하기 위해 또 다른 목발이 필요합니다. 그러면 기본 클래스와 상속자에서 가상이 아닌 메서드를 명시적으로 호출할 수 있습니다.

이해했습니다 감사합니다!