Símbolos personalizados. Errores, fallos, preguntas, sugerencias. - página 14

 

Bug 21.


2085

Tras la reconexión del servidor, todos los símbolos personalizados creados se añaden a la visión general del mercado.
Esto es bueno cuando el mercado está cerrado los fines de semana.
El servidor se reconecta ocasionalmente, o después de un reinicio del terminal en el momento de la instalación de la conexión,
El gráfico del símbolo estándar puede reiniciarse y hacer un tick, en este momento todos los símbolos personalizados creados se añaden al resumen del mercado por sí mismos.

 

Sugerencia.

Por favor, añada el identificadorSYMBOL_VOLUME_INITIAL para laspropiedades de los símbolos, y muestre su valor en la especificación.
Y añade un identificador apropiado para llamar a su valor.

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

Bug 20.

2085
Configuración incorrecta de las propiedades de los caracteres personalizados.



¿Dónde está el código para la reproducción?

 
Slava:

¿Dónde está el código para la reproducción?

En el mensaje con el error 20, se enumeran los identificadores. ¿No se muestran en el mensaje?

 

Bug 22.

Un rollover de un tick cambia su precio por un factor de 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); // Показали, что на самом деле пробросили.
}


Resultado

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
 

Hola a todos

esta es la primera vez que ejecuto mt, lo necesito para el análisis de datos y la elaboración de gráficos

hecreado un símbolo, cargado barras de csv, puedo ver el archivo de datos gruesos en el directorio insta

Símbolo activado, en la vigilancia del mercado

No mostrar el gráfico - "Esperando actualización


¿Me he perdido algo?

lo he probado tanto en mt4 como en mt5 - todo es igual

gráficos de demostración - correr saltando

 
Roman:

En el mensaje con el error 20, se enumeran los identificadores. ¿No se muestran en el mensaje?

Otra vez. ¿Dónde está el código reproducible?

Se muestran los identificadores. Lo que me lleva a mi pregunta: ¿qué tiene que ver ORDER_FILLING_XXX con esto? ¿Has leído bien la documentación?

 
Slava:

Una vez más. ¿Dónde está el código reproducible?

Se muestran los identificadores. Lo que me lleva a mi pregunta: ¿qué tiene que ver ORDER_FILLING_XXX con esto? ¿Has leído bien la documentación?

Porque hemos establecido el modo de llenado paraSYMBOL_FILLING_MODE
Pero los propios identificadores muestran un cambio en el resultado de la salida.
Mira el resultado.
FOK se ajusta a la especificación None
IOC se ajusta a la especificación FOK
RETURN se ajusta a la especificación IOC

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

Y si quieres utilizar otros identificadores de otros ENUM, comoSYMBOL_FILLING_XXX

Sólo hay dos identificadores en este ENUM
SYMBOL_FILLING_FOK
SYMBOL_FILLING_IOC

¡Y para el modo de intercambio, ningún identificador!
¿Cómo se puede establecer el modo de intercambio sin identificador o su valor?
Busque usted mismo en la documentación.

Asegúrese
de queno hay ningúnidentificadorparaSYMBOL_FILLING_RETURN

 
Roman:

¿Cómo se puede entonces establecer el modo de intercambio sin identificador o su valor?

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

Bibliotecas: Símbolo

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

Aparte de los desarrolladores, tus posts tampoco me quedan nada claros. Vea cómo puede informar de un problema de forma constructiva.

 
¿Qué es lo que no está claro? En mi informe de errores #20 señalé la configuración de ID y la razón de la discrepancia.
SYMBOL_TRADE_EXEMODE
SYMBOL_TRADE_CALC_MODE
Estos son modos completamente diferentes y no están relacionados con el problema.

Esto debería ser más claro.

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

¡Si desea utilizar otro identificador de ENUMSYMBOL_FILLING_XXX
entonces
no hay identificadorparaSYMBOL_FILLING_RETURN!

Archivos adjuntos: