代码回测历史优化逻辑可行性

大佬,下午好

写代码过程中,遇到一个历史回测的优化算法 不知可行否。 代码概要如下

vars:

myexit  // 止损价标记点  

myentry // 开仓标记点

myDemoExit  // 回测时 止损点

myDemoEntry // 回测时 ,止盈点

MinPoint  // 最小单位 跳   ,  myEntry 和  myExit  都是按 最小跳计算出来的价格,前期代码已经优化好


回测数据时,止盈止损的优化算法如下

以多单组平仓为例    

if(close<=myExit)

myDemoExit = myEntry - (myExit+1/2abs( open[1]-close[1] )*MinPoint )    //多单止损算法

sell(lots,myDemoExit)     //  lots 是手数,之前定义的变量 和 买入仓单一样。后续在改进为ID多单组总仓位。

这里的多单止损算法,就是优化下 最后一根棒体的价格,为最后bar的1/2收盘价和开盘价差额的绝对值。


疑问是,这个myDemoExit 回测时,是否会有效成交!并按这个价格进行核算 盈亏

同样的,盈利也会这样优化。 这样可能会更贴切点结果数据。

回测和参数优化
策略选股回测IsAllPickCondition()函数逻辑
批量回测的时候,参数优化
历史数据逻辑错误,k线周期越大,错误越严重
策略优化能否通过代码来实现?
请教如何在事件onbar域里判断当前的数据源是实时数据还是历史回测数据
Range[0:DataCount-1] { \\\"这是代码逻辑\\\" }, 语法使用问题
下面代码逻辑里面的SellShort,Buy价格是否头偷价行为?
期权是否可回测
回测遇到的2个问题 请老师解答下

大佬下午好 刚刚入门的小白,有个问题想请教一下各位大佬

这个语句是这样写的:

If (  MarketPosition == 1)

{  maxHighSinceEntry = Highest(High, CurrentBar - EntryBar + 1);

}

EntryBar 是开多单时记录的Bar位置,想实现从开多单开始的Bar 到当前CurrentBar ,找出序列K线中的最高价High,但是编译出错,提示在 if 判断语句中不能有序列变量

该如何改写呢?请大佬们指导一下吧

我也是学习者,个人判断,可能是语法错误,把 CurrentBar - EntryBar + 1 这里的表达方式和语法估计有错误。。你可以看看 语法说明书里面的 二级移动止损的源代码, 这里面有不少好东西可以借鉴。。

你可以看看布林轨的写法。。可能对你有帮助的。。

回测是否成交取决你的信号价格和信号条件发生时的理论盘口价格

比如你if条件里的条件,满足时,理论盘口价格是1000,那么你的信号价格写1000买入,这个大概率能成交,当然价格越低概率越大。但是如果你写1001买入,那就不可能了。

至于这个理论盘口价格是多少,你得自己推算出来。

比如你的条件是突破四周上轨,那么这个理论盘口价格就是四周上轨。比如你的条件是双均线金叉,那就是盘中均线金叉一瞬间的盘口价格,用平均公式逆运算推算出来。

好的,感谢,大佬。。。想着更加精准点的回测。。回头试试看。有问题,再来请教。。感谢。感谢。。报告大佬一个好消息,最近撸代码,逐渐上瘾了。。哈哈。。可能属于刚入门的状态了。。

if(close<=myExit or low<=myExit) // 补充一个最低价小于止损平仓价时

myDemoExit = myEntry - (myExit+1/2abs( open[1]-close[1] )*MinPoint )    //多单止损算法

sell(lots,myDemoExit)