Vladimir Karputov:
EA的本质是设置某些蜡烛的组合。规则是:一根看涨的蜡烛意味着 "1",一根看跌的蜡烛意味着 "0"。因此,只需指定 "101",就可以搜索到这样的烛台组合。
虽然问题出在组合的编码表示上--在输入参数中,我们不能以二进制形式指定数字。
你可以通过文本,然后解析字符串....
(这很酷)。
在输入参数中,你可以指定小数形式的数字。而且它还可以转换为二进制,或者已经作为二进制符号的序列,通过单独拉出每个位来使用。就这么简单))。
Aliaksandr Hryshyn:
(这很酷)。
在输入参数中,你可以指定小数形式的数字。而且它还可以转换为二进制,或者已经作为二进制符号的序列,通过单独拉出每个位来使用。这很简单))。
可以将其设置为二进制参数,但不可能在输入参数中以二进制的形式呈现。
Vladimir Karputov, 2017.04.05 09:24
例子来自帮助char、short、int和long类型。
... 对于整数变量,可以使用B前缀以二进制形式指定数值。例如,你可以将一个交易时段的工作时间编码为一个int类型的变量,并根据所需的算法使用相关信息。
//--- для рабочих часов ставим 1, для нерабочих указываем 0 int AsianSession =B'111111111'; // азиатская сессия с 0:00 часов до 9:00 int EuropeanSession=B'111111111000000000'; // европейская сессия 9:00 - 18:00 int AmericanSession =B'111111110000000000000011'; // американская 16:00 - 02:00
但是,以二进制形式指定输入参数(正好是11111111000000000 的形式)。
//+------------------------------------------------------------------+ //| Test.mq5 | //| Copyright 2017, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ #property script_show_inputs //--- для рабочих часов ставим 1, для нерабочих указываем 0 input int AsianSession=B'111111111'; // азиатская сессия с 0:00 часов до 9:00 input int EuropeanSession=B'111111111000000000'; // европейская сессия 9:00 - 18:00 input int AmericanSession=B'111111110000000000000011'; // американская 16:00 - 02:00 //--- string text="10"; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { //--- } //+------------------------------------------------------------------+
将不会起作用--在输入参数中,数字的二进制表示法被转换为普通数字。
问题:有没有办法将输入参数中的值精确地设置为二进制形式(这样用户就不会看到一个数字,而只是一个二进制表示,如1111111111000000000)?
对于收盘==开盘的蜡烛,情况似乎不是很可靠
并建议选择-1 0 1
其中0适用于任何方向
并建议选择-1 0 1
其中0适用于任何方向
Sergey Dzyublik:
对于收盘==开盘的蜡烛,情况似乎不是很可靠
并建议选择-1 0 1
其中0对任何方向都好
对于收盘==开盘的蜡烛,情况似乎不是很可靠
并建议选择-1 0 1
其中0对任何方向都好
我拒绝了Close == Open的变体,因为它不可靠--这样的蜡烛没有方向。
什么是INT?
它只通过字符串或数组。
它只通过字符串或数组。
Vladimir Karputov:
你可以把它设置为二进制形式的参数,但你不能用二进制形式的输入参数来表示它。
你可以把它设置为二进制形式的参数,但你不能用二进制形式的输入参数来表示它。
我写道,你可以把它设置成十进制的形式,作为一个普通的整数,然后从中抽取个别的比特。
EA的本质是设置某些蜡烛的组合。规则是:一根看涨的蜡烛意味着 "1",一根看跌的蜡烛意味着 "0"。因此,只需指定 "101",就可以搜索到这样的烛台组合。
到目前为止,问题出在组合的编码表示上--你不能在输入参数中以二进制形式指定一个数字。
关于交易、自动交易系统和策略测试的论坛
摩尔斯电码
Vladimir Karputov, 2017.04.06 10:25
到目前为止,莫尔斯码版本 "1.003":你可以手动设置模式的字符串描述,甚至在测试器中运行单次通过。
关于交易、自动交易系统和交易策略测试的论坛
摩尔斯电码
Vladimir Karputov, 2017.04.07 08:42
莫尔斯码版本 "1.005"
...
解决了两个问题。
1).用户在输入参数中看到的图案是 "0101"。
2).输入参数在测试器中得到了完美的优化。