사용자 정의 기호. 오류, 버그, 질문, 제안. - 페이지 14

 

버그 21.


2085

서버가 다시 연결되면 생성된 모든 사용자 정의 기호가 자체적으로 시장 개요에 추가됩니다.
이것은 주말에 시장이 닫힐 때 잘 작동합니다.
서버가 주기적으로 재접속을 하거나, 접속이 된 시점에 단말을 재기동한 후,
표준 기호 차트는 다시 로드하고 한 번의 틱을 만들 수 있습니다. 이 순간에 생성된 모든 사용자 지정 기호는 자체적으로 시장 시계에 추가됩니다.

 

권하다.

식별자 SYMBOL_VOLUME_INITIAL을 추가하세요.   기호 속성 의 경우 해당 값을 사양에 표시합니다.
그리고 적절한 id를 추가하여 해당 값을 호출합니다.

 CustomSymbolSetDouble (SName, SYMBOL_VOLUME_INITIAL, 0.00000000 );           Результат: Initial volume == 0.00000000
 
Roman :

버그 20.

2085
사용자 지정 기호 속성이 잘못 설정되었습니다.



재현할 코드는 어디에 있습니까?

 
Slava :

재현할 코드는 어디에 있습니까?

버그 20이 있는 메시지에는 식별자가 표시됩니다. 게시물에 표시되지 않습니까?

 

버그 22.

틱을 던지면 가격이 10배 변경됩니다.

 #define PRINT(A) Print ( #A + " = " + ( string )(A))

void OnStart ()
{
   MathSrand (( int ) TimeLocal ());  
   const string Name = "CUSTOM_" + _Symbol + ( string ) MathRand (); // Создали символ    
  
  PRINT( CustomSymbolCreate (Name)); // Создали символ по-умолчанию.
  
   // Если удалить любую из двух строк ниже, то результат будет нормальным.
  PRINT( CustomTicksDelete (Name, 0 , LONG_MAX )); // Удалили тиковую историю (ее на самом деле нет).
  PRINT( CustomSymbolDelete (Name)); // Удалили символ
  
  PRINT( CustomSymbolCreate (Name, NULL , _Symbol )); // Создали символ на основе главного.
    
  PRINT( SymbolSelect (Name, true )); // Добавили в Обзор рынка.

   MqlTick Tick[ 1 ];
  PRINT( SymbolInfoTick ( _Symbol , Tick[ 0 ])); // Взяли свежий тик для проброса.
   ArrayPrint (Tick); // Показали тик.
  
  PRINT( CustomTicksAdd (Name, Tick)); // Пробросили тик.
  
   MqlTick NewTicks[];
  PRINT( CopyTicksRange (Name, NewTicks));  
   ArrayPrint (NewTicks); // Показали, что на самом деле пробросили.
}


결과

 CustomSymbolCreate (Name) = true
CustomTicksDelete (Name, 0 , LONG_MAX ) = 0
CustomSymbolDelete (Name) = true
CustomSymbolCreate (Name, NULL , _Symbol ) = true
SymbolSelect (Name, true ) = true
SymbolInfoTick ( _Symbol ,Tick[ 0 ]) = true
                 [time]   [bid]   [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.06 . 17 02 : 08 : 35 1.12152 1.12157 0.0000          0 1560737315178        2        0.00000
CustomTicksAdd (Name,Tick) = 1
CopyTicksRange (Name,NewTicks) = 1
                 [time]    [bid]    [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.06 . 17 02 : 08 : 35 11.21520 11.21570 0.0000          0 1560737315178        6        0.00000
 

안녕하세요 여러분

mt를 처음 실행했는데 데이터 분석 및 플로팅에 필요합니다.

심볼을 만들고 csv에서 막대를 로드했습니다. 인스턴트 디렉토리에 두꺼운 데이터 파일이 표시됩니다.

활성화된 기호, 시장 개요에

차트가 표시되지 않음 - "업데이트 대기 중"


내가 뭐 놓친 거 없니?

MT4와 MT5에서 모두 시도했습니다. 모든 것이 동일합니다.

데모 그래픽 - 점프를 실행

 
Roman :

버그 20이 있는 메시지에는 식별자가 표시됩니다. 게시물에 표시되지 않습니까?

다시. 재현 가능한 코드는 어디에 있습니까?

아이디가 표시됩니다. 이와 관련하여 질문은 다음과 같습니다. ORDER_FILLING_XXX가 그것과 어떤 관련이 있습니까? 설명서를 주의 깊게 읽었습니까?

 
Slava :

다시. 재현 가능한 코드는 어디에 있습니까?

아이디가 표시됩니다. 이와 관련하여 질문은 다음과 같습니다. ORDER_FILLING_XXX가 그것과 어떤 관련이 있습니까? 설명서를 주의 깊게 읽었습니까?

채우기 모드를 SYMBOL_FILLING_MODE 로 설정한 반면
그러나 식별자 자체에는 출력 결과에 변화가 있습니다.
결과를 보세요.
FOK가 없음 사양으로 설정됨
IOC는 FOK 사양으로 설정
RETURN은 IOC 사양으로 설정됩니다.

 ORDER_FILLING_FOK      Результат: Filling == None
или
ORDER_FILLING_IOC      Результат: Filling == Fill or Kill
или
ORDER_FILLING_RETURN   Результат: Filling == Immediate or Cancel

SYMBOL_FILLING_XXX 와 같은 다른 ENUM의 다른 식별자를 계속 사용해야 하는 경우

그러면 이 ENUM에는 두 개의 식별자만 있습니다.
SYMBOL_FILLING_FOK
SYMBOL_FILLING_IOC

그리고 스톡 모드의 경우 ID가 없습니다!
그러면 식별자나 값 없이 교환 모드를 설정하는 방법은 무엇입니까?
문서를 직접 살펴보십시오.
SYMBOL_FILLING_RETURN 에 대한 ID 가 없는지 확인하십시오.

 
Roman :

그러면 식별자나 값 없이 교환 모드를 설정하는 방법은 무엇입니까?

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

라이브러리: 기호

fxsaber , 2018.04.06 09:21

Symb.SetProperty( SYMBOL_TRADE_EXEMODE , SYMBOL_TRADE_EXECUTION_EXCHANGE );
Symb.SetProperty( SYMBOL_TRADE_CALC_MODE , SYMBOL_CALC_MODE_EXCH_FUTURES );

개발자 외에도 귀하의 메시지는 나에게 전혀 명확하지 않습니다. 문제를 건설적으로 보고하는 방법을 확인하십시오 .

 
글쎄, 여기서 명확하지 않은 것은 버그 #20이 있는 메시지에서 식별자 설정을 표시하고 비준수 이유를 표시했습니다.
SYMBOL_TRADE_EXEMODE
SYMBOL_TRADE_CALC_MODE
이들은 완전히 다른 모드이며 문제에 적용되지 않습니다.

그것은 아마도 더 명확할 것입니다.

 void OnStart ()
{
   string SName = "SYMBOL" ;
   
   if ( CustomSymbolCreate (SName))
       CustomSymbolSetInteger (SName, SYMBOL_FILLING_MODE , ORDER_FILLING_RETURN );
       //CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, ORDER_FILLING_FOK);  
       //CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, ORDER_FILLING_IOC);
   
}

그리고 여전히 ENUM SYMBOL_ FILLING_XXX 의 다른 식별자를 사용해야 하는 경우
그러면
SYMBOL_ FILLING_RETURN에 대한 식별자가 없습니다!