template <typename T>
T MyPrint( const T Value, conststring Str, constbool DebugFlag = false ) { Print(Str + " = " + (string)Value); return(Value); }
#define _P(A) MyPrint(A, __FUNCSIG__", Line = " + (string)__LINE__ + ": " + #A) // Макрос для удобного и наглядного вывода значенийvoidOnStart()
{
conststring Name = "TEMP9"; // Имя кастомного символаconststring SymbOrig = "EURUSD"; // Имя оригинального символаMqlTick Ticks[];
constint Size = _P(CopyTicksRange(SymbOrig, Ticks, COPY_TICKS_ALL, (long)D'2019.01.01' * 1000)); // Считали EURUSD-тики за 2019 год.if ((Size > 0) && _P(CustomSymbolCreate(Name, NULL, SymbOrig)) && _P(SymbolSelect(Name, true))) // Создали символ на основе EURUSD.
{
_P(CustomTicksAdd(Name, Ticks)); // Поместили в него историю EURUSD через CustomTicksAddMqlTick AddTicks[1];
AddTicks[0] = Ticks[Size - 1]; // Взяли последний тик
AddTicks[0].time += 3600; // И к его времени добавили час
AddTicks[0].time_msc = (long)AddTicks[0].time * 1000;
_P(CustomTicksDelete(Name, (ulong)D'2019.02.01 00:00' * 1000, LONG_MAX)); // Удалили все тики, оставив только данные за январь 2019.
_P(CopyTicksRange(Name, Ticks)); // Посмотрели, сколько тиков осталось.
_P(CustomTicksAdd(Name, AddTicks)); // Пробросили один тик.
_P(CopyTicksRange(Name, Ticks)); // Увидели, что добавился не один тик, а 129.
_P(CustomTicksDelete(Name, (ulong)D'2019.02.01 00:00' * 1000, LONG_MAX)); // Делаем повторное удаление - да, 129!
_P(SymbolSelect(Name, false)); // Удалили символ из Обзора рынка.
_P(CustomSymbolDelete(Name)); // Удалили символ.
}
}
结果
voidOnStart(), Line = 11: CopyTicksRange(SymbOrig,Ticks,COPY_TICKS_ALL,(long)D'2019.01.01'*1000) = 3316638voidOnStart(), Line = 13: CustomSymbolCreate(Name,NULL,SymbOrig) = truevoidOnStart(), Line = 13: SymbolSelect(Name,true) = truevoidOnStart(), Line = 15: CustomTicksAdd(Name,Ticks) = 3316638voidOnStart(), Line = 23: CustomTicksDelete(Name,(ulong)D'2019.02.01 00:00'*1000,LONG_MAX) = 1158959voidOnStart(), Line = 24: CopyTicksRange(Name,Ticks) = 2157552voidOnStart(), Line = 26: CustomTicksAdd(Name,AddTicks) = 1voidOnStart(), Line = 28: CopyTicksRange(Name,Ticks) = 2157681voidOnStart(), Line = 29: CustomTicksDelete(Name,(ulong)D'2019.02.01 00:00'*1000,LONG_MAX) = 129voidOnStart(), Line = 31: SymbolSelect(Name,false) = truevoidOnStart(), Line = 32: CustomSymbolDelete(Name) = true
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
真实的自定义符号只供参考,不用于交易。它们只能用于测试器中的交易。
真实上的自定义符号 可以作为真实工具上的开盘或收盘的一个指标。
自定义符号可以作为真实工具上的开盘或收盘指标。
你和fxsaber :谢谢,而且文档中没有一个字提到它。像往常一样,其原因是应该在论坛上和通过口碑收集信息。当我看着图纸时,我以为他们通过终端实现了某种翻倍或N个工具的交易,我也想知道他们是如何固定手数的。现在我明白了,这对我来说可能没有用。
Bug 05.
BugCustomTicksAdd.
结果
增加的点数比指定的多。
关于合成物的东西正在吞噬内存,并拖慢了终端 的启动速度。我昨天做了两个合成物,为它们各开了一个图。今天终端启动了三分钟(!!!),任务管理器的内存消耗为1.88Gb。删除了这些图表,隐藏了合成物,启动20秒,和以前一样,内存消耗490MB。2006年的图片,窗口中的最大条数 - 无限。
在第一次合成时,有来自帮助的配方。
关于第二个简单的公式。
0.5 * (ask(EURUSD) + ask(USDCAD))
关于合成物的东西正在吞噬内存,并拖慢了终端 的启动速度。我昨天做了两个合成物,为它们各开了一个图。今天终端启动了三分钟(!!!),任务管理器的内存消耗为1.88Gb。删除了这些图表,隐藏了合成物,启动20秒,和以前一样,内存消耗490MB。2006年的图片,窗口中的最大条数 - 无限。
在第一次合成时,有来自帮助的配方。
关于第二个简单的公式。
0.5 * (ask(EURUSD) + ask(USDCAD))
当运行合成时,它占用了大量的SSD磁盘资源。如果SSD磁盘很慢,如果有几个合成器,终端启动可能需要10分钟。
我甚至不是在谈论用合成材料的终端使用HDD。
当我放上快速驱动器(三星970 Pro)时,所有终端启动和合成的问题都停止了。
终端启动时内存约为12Gb,使用的是i7-6700K处理器。
Bug 05.
Bug CustomTicksAdd.
增加的点数比指定的多。
2007年--情况变得更加糟糕。CustomTicksAdd增加 了63969个刻度,而不是一个。
SZY 2007 - 所有的错误都是实际的。
Bug 02.
即使是ChartRedraw也不会产生视觉效果。
只有当你用鼠标滚动图表时,它才会恢复正常。你能通过ChartRedraw修复可视化吗?
推荐一种方法,在CustomRatesUpdate 之后刷新图表,这样它就会强制绘制更新的条形图,而不是只在它自己决定这样做的时候才刷新。
关于交易、自动交易系统和交易策略测试的论坛
新版本的MetaTrader 5 build 2007:经济日历、MQL5服务和R的API
fxsaber, 2019.02.22 12:40
在OnCalculate中RatesUpdate之后,它总是将prev_calculated重置为零,这是否正确?
毕竟,如果我更新一个新的条形图,比如说,我不需要重新计算整个指标。
关于交易、自动交易系统和交易策略测试的论坛
新版本的MetaTrader 5 build 2007:经济日历、MQL5服务和R的API
fxsaber, 2019.02.22 12:14
一个很大的要求,如果没有符号,但有其kc文件,请删除它们。
面对异常的情况,终端机崩溃了。
我走进去,看到我的符号不在那里。只要创建一个同名的符号,并将其与kc的历史记录一起显示出来。它看起来像一个错误。