文章 "在 MetaTrader 5 中创建和测试自定义交易品种" - 页 4

 
如果我选择计算类型--"ExchangeFutures(交易所期货)"(如下图所示),并添加一个价差,测试器在测试时会考虑这个价差还是会忽略它?我的想法是在自己的符号中添加可能的滑点作为点差,并在测试器中进行测试。
附加的文件:
 
AndreyKrivcov:

如果我选择计算类型--"Exchange Futures(交易所期货)"(如下图所示),并添加一个价差,测试器在测试时会考虑这个价差吗?我的想法是在自己的符号中添加一个可能的滑点作为点差,然后在测试器中进行测试。

一次性将刻度写入自定义符号,并只在 "按实际刻度 "模式下测试。使用自定义符号的其他模式几乎总是愚蠢的。

 
fxsaber:

一次性将刻度写入自定义符号,并仅在 "按实际刻度 "模式下进行测试。使用自定义符号的其他模式几乎总是愚蠢的。


我想在压力测试中使用嘈杂的报价。当然我会写刻度线,但我也想制作图表。

是的,顺便说一下,有一个关于CustomSymbolSetInteger 的问题,即从 MarketWatch 中添加和删除的属性:
bool deattach = CustomSymbolSetInteger(Symb,SYMBOL_SELECT,1);
总是给出错误 5307 - 属性设置不正确。如何为该命令设置属性?

 
AndreyKrivcov:



是的,顺便说一下,有一个关于 CustomSymbolSetInteger 的问题,即从 MarketWatch 中添加和删除的属性:
bool deattach = CustomSymbolSetInteger(Symb,SYMBOL_SELECT,1);
总是给出错误 5307 - 属性设置不正确。如何为该命令设置属性?

符号选择


通过自定义符号*设置的属性(红色)列表

    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/zh/docs/marketinformation/symbolinfointeger


通过自定义符号*设置的属性列表(红色)。


谢谢。其余功能是否尚未完成? 还是根本不会添加?

 
AndreyKrivcov:

谢谢。剩下的功能还没有完成吗? 还是会陆续添加?

功能已完成 90%。当然也不是没有错误。

 
AndreyKrivcov:

如果我选择计算类型--"Exchange Futures(交易所期货)"(如下图所示),并添加一个价差,测试器在测试时会考虑这个价差还是会忽略它?我的想法是将可能的滑点 作为点差添加到自己的符号 中,然后在测试器中进行测试。

测试仪内置的随机或固定滑点模式不合适吗?

 
Stanislav Korotky:

测试仪内置的随机或固定滑移模式不合适吗?


滑点是基于时间的,我对滑点更感兴趣,不是因为 ping 滞后,而是一般情况。例如,如果交易量增加(例如,在 Sber 或 Gazprom 上交易......)。

 
fxsaber:

90% 的功能已经可用。当然也不是没有漏洞。




顺便说一下,CustomTicksUpdate(customSymbol,ticks)函数还不能用,不过你可以用拐杖(CustomTicksReplace(customSymbol,from,till*1000,ticks))代替它。

下面我附上了功能检查脚本给我的文件以及脚本本身。

 
AndreyKrivcov:

顺便说一下,CustomTicksUpdate(customSymbol,ticks) 函数还不能用,但可以用拐杖代替(CustomTicksReplace(customSymbol,from,till*1000,ticks))。

它有一个不同的函数名称。用 Replace 函数代替 TicksAdd 并不十分清楚 TicksAdd 的作用:抛出相应的 Tick 事件。