if(LastPosition.NetProfit > 400 && LastPosition.PositionType == Long)
{
double volume = LastPosition.Volume + 1;
BuyAtMarket(volume, "Entry long by strengthening");
}
另一个例子是推荐系统如何处理这样一个简单的条件(伪代码)。
if(LastPosition.NetProfit < -400)
{
CloseAtMarket(LastPosition, "Exit position by stop-loss");
if(LastPosition.PositionType == Long)
ShortAtMarket(volume, "Entry long by revers")
else
BuyAtMarket(volume, "Entry short by revers")
}
在这种情况下,我们将不得不存储信号的历史,这是很昂贵的。让我们再次看看两条平均线的交叉情况。假设我们重新启动了EA。没有新的交叉点可以进入,EA将以某种方式需要恢复其交易历史,并理解有一个交叉点,现在应该处于买入状态,并且这个信号已经被处理,我们不应该开立新的头寸,但我们需要找到旧的头寸,但不容易找到,因为当前的头寸不一定只属于一个EA ...总而言之,这是一场恶梦。这就是hrenfx建议的荆棘之路:在每个机器人中写一个历史测试器,它将收集历史信号,计算它们是否有效,然后存储策略的数量,等等。因此,开发的复杂性增加了一个数量级,而仍然没有可靠的解决方案。
信号历史是一个指标,指标是为此目的而设计的,用来进行计算,产生信号并将其上传到专家顾问。
也不要说指标是重画的,写出不重画的指标,你就会很高兴。
没有人可以把我们引入歧途,我们根本不在乎我们要去哪里 :)
这怎么可能不重要呢!?任何策略,在其逻辑层面上,总是知道它的当前状态!
该战略不需要知道它的历史。该战略应向前看,而不是向后看。发生的事情已经成为过去,不可能再回头了。
以一个简单的交叉策略为例:它只有两种状态,不是买入就是卖出。在不记忆其位置的情况下,每次看到快速平均线高于慢速平均线时,它就会开出多头。那么,同步器要做什么?你告诉他:"不,你已经有一个多头头寸了,我不会再给你一个"。
:)
我已经写过了,你在解决一个不存在的问题。 只有在 "秩序 "思维下,问题才显得真实。有了网状思维就不存在了。
我不是在说你或我的思维,我是在说程序(战略)的思维。
在基于订单的系统中,该策略是离散的买入/卖出/平仓信号的生产者。 在基于净值的系统中,该策略输出一个数字(双倍)--建议的市场位置。
让我们用两辆马车的例子来说明,比如说,在交易恒定手数时,滚动净值TC将如何产生其产品(伪代码)。
就这样了。
只要短线波动高于长线,该策略就会在输出上保持+1,而当短线波动低于长线时则保持-1。
关于在适当的时候为保持这些头寸而下什么订单/平仓的决定是由市场驱动力来做的。 策略不需要去管它,它的作用是比较贵族化的,它不关心那些商业化的东西。 驱动力取符号的建议头寸,用它减去实际头寸,然后显示差值。 如果差值等于零,它就不做什么。
我的解决方案是通用的,策略自己决定有多少订单,在哪个方向可以保持开放。
如果你想买一个位置,卖两个位置,没问题。
这里有可能笑吗? 这正是问题所在--它被称为 "锁"。
在几个输入策略的总头寸提交给市场驱动力之前,我已经解开了所有潜在的锁。
基类拥有它所需要的所有信息来做决定。在终端层面,没有净头寸,而策略本身在舒适的多头模式下工作。
由我提议的模板创建的专家顾问将自动具有多专家的属性。我不需要添加或修改任何东西。不同的EA在一个符号上的头寸不会塌陷成网状,在这种模式下编制网格或储物柜和其他策略一样容易。换句话说,无论专家顾问的逻辑如何,都实现了程序执行的完全统一!这也是我们的目标。
...
只要空头高于多头,该策略将在出场时保持+1,而当空头低于多头时则保持-1。
市场驱动力决定在适当的时候下什么单/平仓来维持这些头寸。 策略不需要去管它,它的作用更多的是贵族式的,它不关心这些商战的虚荣。
策略甚至需要担心某种订单吗? 市场驱动力为我决定这些小细节。
...
这当然很好,但对于那些当前的 "建议 "取决于先前所开仓位 的策略,又该怎么办呢?假设一个策略是积极的金字塔,它有这样一个条件(伪代码)。
另一个例子是推荐系统如何处理这样一个简单的条件(伪代码)。
在现实中,可能有很多这样的情况。这就是基本的模糊的东西。我对它非常熟悉,我搜遍了这里的每一个角落。 而且它是错误的。
战略没有必要了解其历史。战略应该向前看,而不是向后看。已经发生的事情在过去已经发生了,不可能再回头。
你为什么要大喊大叫:)他不是这么说的。
任何策略,在其逻辑层面上,总是知道它的当前状态!
这当然很好,但对于那些当前的 "建议 "取决于先前所开仓位 的策略,又该如何处理?假设该策略是积极的金字塔,它有这个条件(伪代码)。
这些策略肯定需要在交易哲学层面上进行治疗,也就是说,应该治疗头上的这个特别的洞:"当前的建议取决于以前开的头寸"。
当前推荐的头寸绝不应取决于以前在市场上采取的行动。
你为什么要大喊大叫:)他不是这么说的。
它说的是当前状态,而不是历史。我不是在和他说的沟通,我是在和他的意思沟通。 他指的是以前的现状。
:)
:)
事实上,对于我的方案来说,创建考虑到过去交易的策略并没有什么主要障碍。
用更多的学术术语来说:一个没有内存的系统可以很容易地模拟一个有内存的系统。 要做到这一点,内存只是被移到系统之外--它成为另一个输入指标。 这就足够了。 策略本身仍然是一个 "没有内存的系统",这很好,也很正确。
当前推荐的头寸绝不应取决于市场上早先进行的行动。
那些 "发布自己的建议 "的机器人,其信号只有一句话,怎么办?机器人看到一个大的上升蜡烛--一个买入信号。下一个柱子是一个正常的柱子,没有信号。如果机器人不记得自己的状态,那么它在这个柱子上的建议已经是空的,而记得的机器人则不是空的,而是有一个多头头寸。但这是两个相同的机器人。
我不是在与他说的话交流,而是与他的意思交流。 他指的是以前的现状。
关键是,顶级创业者很可能有一个价格预测器,而不是一个战略。
MM模块是预测者和驱动者之间的一层,结果可以是任何东西,从资本化和风险限制(在X...小时/交易/点的相对缩减)到预测者建议的仓位的彻底逆转。
那些 "发布自己的建议 "的机器人,其信号只有一句话,怎么办?机器人看到一个大的上升蜡烛--一个买入信号。下一个柱子是一个正常的柱子,没有信号。如果机器人不记得自己的状态,那么它在这个柱子上的建议已经是空的,而记得的机器人则不是空的,而是有一个多头头寸。而这是两个相同的机器人。
这些机器人肯定应该得到治疗。 治疗可能非常简单。 你所需要的只是动力。这是最主要的事情。
而为了激励他们,他们需要看到并欣赏网状思维比秩序思维的巨大优越性。 只要他们生病,我就不会让他们接近健康人群--让他们坐在隔离区里......
:)