Discussão do artigo "Criação e teste de símbolos personalizados na MetaTrader 5" - página 4

 
Levando em conta que este tópico é dedicado a símbolos personalizados, vou perguntar aqui.
Se eu escolher o tipo de cálculo - "Exchange Futures", como na tela abaixo, e adicionar um spread, ele será levado em conta pelo testador durante o teste? ou será ignorado? A ideia é adicionar uma possível derrapagem em seu próprio símbolo como um spread e testá-la no testador.
Arquivos anexados:
 
AndreyKrivcov:
Levando em conta que este tópico é dedicado a símbolos personalizados, vou perguntar aqui.
Se eu escolher o tipo de cálculo - "Exchange Futures", como na tela abaixo, e adicionar um spread, ele será levado em conta pelo testador durante o teste? ou será ignorado? A ideia é adicionar uma possível derrapagem em seu próprio símbolo como um spread e testá-la no testador.

Escreva ticks em símbolos personalizados de uma só vez e teste somente no modo "por ticks reais". Outros modos para símbolos personalizados são quase sempre estúpidos de usar.

 
fxsaber:

Grave ticks nos símbolos personalizados de uma só vez e teste somente no modo "por ticks reais". Os outros modos para símbolos personalizados quase sempre são estúpidos de usar.


Quero fazer cotações barulhentas para testes de estresse. É claro que escreverei ticks, mas também penso em fazer gráficos.

Sim, a propósito, há uma pergunta sobre o CustomSymbolSetInteger, ou seja, a propriedade de adicionar e excluir do MarketWatch:
bool deattach = CustomSymbolSetInteger(Symb,SYMBOL_SELECT,1);
Sempre dá erro 5307 - a propriedade não está definida corretamente. Como você define a propriedade para esse comando?

 
AndreyKrivcov:

Quero fazer cotações de ruído para testes de estresse. É claro que escreverei ticks e acho que também farei gráficos.

Sim, a propósito, há uma pergunta sobre o CustomSymbolSetInteger, ou seja, a propriedade de adicionar e excluir do MarketWatch:
bool deattach = CustomSymbolSetInteger(Symb,SYMBOL_SELECT,1);
Sempre dá erro 5307 - a propriedade não está definida corretamente. Como você define a propriedade para esse comando?

SymbolSelect.


Lista de propriedades (vermelho) que são definidas via CustomSymbol*

    return(CLONE(SYMBOL_BASIS) &&
    CLONE(SYMBOL_CURRENCY_BASE) &&
    CLONE(SYMBOL_CURRENCY_MARGIN) &&
    CLONE(SYMBOL_CURRENCY_PROFIT) &&
    CLONE(SYMBOL_DESCRIPTION) &&
    CLONE(SYMBOL_FORMULA) &&
    CLONE(SYMBOL_ISIN) &&
    CLONE(SYMBOL_PAGE) &&
    CLONE(SYMBOL_PATH) &&

    CLONE(SYMBOL_MARGIN_HEDGED) &&
    CLONE(SYMBOL_MARGIN_INITIAL) &&
    CLONE(SYMBOL_MARGIN_MAINTENANCE) &&
    CLONE(SYMBOL_OPTION_STRIKE) &&
    CLONE(SYMBOL_POINT) &&
    CLONE(SYMBOL_SESSION_PRICE_LIMIT_MAX) &&
    CLONE(SYMBOL_SESSION_PRICE_LIMIT_MIN) &&
    CLONE(SYMBOL_SESSION_PRICE_SETTLEMENT) &&
    CLONE(SYMBOL_SWAP_LONG) &&
    CLONE(SYMBOL_SWAP_SHORT) &&
    CLONE(SYMBOL_TRADE_ACCRUED_INTEREST) &&
    CLONE(SYMBOL_TRADE_CONTRACT_SIZE) &&
    CLONE(SYMBOL_TRADE_FACE_VALUE) &&
    CLONE(SYMBOL_TRADE_LIQUIDITY_RATE) &&
    CLONE(SYMBOL_TRADE_TICK_SIZE) &&
    CLONE(SYMBOL_TRADE_TICK_VALUE) &&
    CLONE(SYMBOL_VOLUME_LIMIT) &&
    CLONE(SYMBOL_VOLUME_MAX) &&
    CLONE(SYMBOL_VOLUME_MIN) &&
    CLONE(SYMBOL_VOLUME_STEP) &&

    CLONE(SYMBOL_BACKGROUND_COLOR) &&
    CLONE(SYMBOL_CHART_MODE) &&
    CLONE(SYMBOL_DIGITS) &&
    CLONE(SYMBOL_EXPIRATION_MODE) &&
    CLONE(SYMBOL_EXPIRATION_TIME) &&
    CLONE(SYMBOL_FILLING_MODE) &&
    CLONE(SYMBOL_MARGIN_HEDGED_USE_LEG) &&
    CLONE(SYMBOL_OPTION_MODE) &&
    CLONE(SYMBOL_OPTION_RIGHT) &&
    CLONE(SYMBOL_ORDER_GTC_MODE) &&
    CLONE(SYMBOL_ORDER_MODE) &&
    CLONE(SYMBOL_SPREAD) &&
    CLONE(SYMBOL_SPREAD_FLOAT) &&
    CLONE(SYMBOL_START_TIME) &&
    CLONE(SYMBOL_SWAP_MODE) &&
    CLONE(SYMBOL_SWAP_ROLLOVER3DAYS) &&
    CLONE(SYMBOL_TICKS_BOOKDEPTH) &&
    CLONE(SYMBOL_TRADE_CALC_MODE) &&
    CLONE(SYMBOL_TRADE_EXEMODE) &&
    CLONE(SYMBOL_TRADE_FREEZE_LEVEL) &&
    CLONE(SYMBOL_TRADE_MODE) &&
    CLONE(SYMBOL_TRADE_STOPS_LEVEL));
Документация по MQL5: Получение рыночной информации / SymbolInfoInteger
Документация по MQL5: Получение рыночной информации / SymbolInfoInteger
  • www.mql5.com
2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. Если функция используется для получения информации о последнем тике, то лучше использовать SymbolInfoTick(). Вполне возможно, что по данному символу с...
 
fxsaber:

https://www.mql5.com/pt/docs/marketinformation/symbolinfointeger


Lista de propriedades (vermelho) que são definidas por meio de CustomSymbol*.


Obrigado. O restante da funcionalidade ainda não foi concluído ou não será adicionado?

 
AndreyKrivcov:

Obrigado. O restante da funcionalidade ainda não foi concluído ou será adicionado?

A funcionalidade está 90% concluída. Não sem bugs, é claro.

 
AndreyKrivcov:
Levando em conta que este tópico é dedicado a símbolos personalizados, vou perguntar aqui.
Se eu escolher o tipo de cálculo - "Exchange Futures", como na tela abaixo, e adicionar um spread, ele será levado em consideração pelo testador durante o teste? ou será ignorado? A ideia é adicionar um possível deslizamento ao seu próprio símbolo como um spread e testá-lo no testador.

E o modo com derrapagem aleatória ou fixa incorporada ao testador não é adequado?

 
Stanislav Korotky:

O modo com deslizamento aleatório ou fixo incorporado ao testador não é adequado?


Lá, a derrapagem é baseada no tempo, e estou mais interessado na derrapagem não por causa do atraso do ping, mas em geral. Se o volume aumentar, por exemplo, (por exemplo, negociar na Sber ou na Gazprom...).

 
fxsaber:

A funcionalidade está 90% disponível. Não sem bugs, é claro.


Fiz uma pequena pesquisa e descobri que menos de 90% da funcionalidade está disponível, mas tudo bem, o principal é que eles a expandam.

A propósito, a função CustomTicksUpdate(customSymbol,ticks) ainda não funciona, mas em vez dela você pode usar uma muleta(CustomTicksReplace(customSymbol,from,till*1000,ticks)).

Abaixo, anexei os arquivos que meu script de verificação de funcionalidade me forneceu e também o próprio script.

 
AndreyKrivcov:

A propósito, a função CustomTicksUpdate(customSymbol,ticks) ainda não funciona, mas você pode usar uma muleta em seu lugar (CustomTicksReplace(customSymbol,from,till*1000,ticks)).

Ela tem uma função diferente por nome. Substituí-la por uma função Replace não deixa bem claro para que serve TicksAdd: lançar os eventos Tick correspondentes.