Custom symbols. Errors, bugs, questions, suggestions. - page 14

 

Bug 21.


2085

After server reconnect, all created custom symbols are added to the market overview themselves.
This is good when the market is closed on weekends.
The server occasionally re-connects, or after a terminal restart at the moment of connection installation,
The chart of the standard symbol can reboot and make one tick, at this moment all created custom symbols are added to the market overview by themselves.

 

Suggestion.

Please addSYMBOL_VOLUME_INITIAL identifier forsymbol properties, and display its value in the specification.
And add an appropriate identifier to call its value.

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

Bug 20.

2085
Incorrect setting of custom character properties.



Where is the code for playback?

 
Slava:

Where is the code for playback?

In the message with bug 20, the identifiers are listed. Do you not have them displayed in the message?

 

Bug 22.

A rollover of a tick changes its price by a factor of 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); // Показали, что на самом деле пробросили.
}


Result

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
 

Hi all

this is my first time running mt, need it for data analysis and graphing

icreated a symbol, loaded bars from csv, i can see the thick data file in the insta directory

Symbol activated, in market watch

Do not show chart - "Waiting for update


Did i miss something?

i tried it in both mt4 and mt5 - everything is the same

demo charts - run jumping

 
Roman:

In the message with bug 20, the identifiers are listed. Do you not have them displayed in the message?

Again. Where is the reproducible code?

The identifiers are displayed. Which brings me to my question: what does ORDER_FILLING_XXX have to do with it? Have you read the documentation carefully?

 
Slava:

One more time. Where is the reproducible code?

The identifiers are displayed. Which brings me to my question: what does ORDER_FILLING_XXX have to do with it? Have you read the documentation carefully?

Because we set the filling mode forSYMBOL_FILLING_MODE
But the identifiers themselves show a shift in the output result.
Look at the result.
FOK sets to None specification
IOC sets to FOK specification
RETURN sets to IOC specification

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

And if you want to use other identifiers from other ENUM, likeSYMBOL_FILLING_XXX

There are only two identifiers in this ENUM
SYMBOL_FILLING_FOK
SYMBOL_FILLING_IOC

And for exchange mode, no identifier!
How can you set exchange mode without identifier or its value?
Look in the documentation yourself.
Make sure that
there is no identifierforSYMBOL_FILLING_RETURN

 
Roman:

How then to set exchange mode without identifier or its value ?

Forum on trading, automated trading systems and testing trading strategies

Libraries: Symbol

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

Apart from the developers, your posts are not at all clear to me either. See how you can report a problem constructively.

 
What's not clear? In my bug report #20 I pointed out the ID setting and the reason for the discrepancy.
SYMBOL_TRADE_EXEMODE
SYMBOL_TRADE_CALC_MODE
These are completely different modes and are not related to the problem.

This should be clearer.

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

If you want to use another identifier from ENUMSYMBOL_FILLING_XXX
then
there is no identifierforSYMBOL_FILLING_RETURN!

Reason: