开拓者期货期权程序化系统交易论坛

标题: 为什么同样的逻辑交易方向不用显示结果就不同? [打印本页]

作者: gxqh000216    时间: 2016-3-31 15:39:28     标题: 为什么同样的逻辑交易方向不用显示结果就不同?

我做了个止损模型,就吊灯止损的。不用A函数和Q函数测试效果挺好。但是用了之后就出问题了。
首先是做多方向的。
我的愿意是无仓位的情况黄线就沿着每根bar的high,有仓位的话就以设定的全局变量为起点,和今后的每个high对比,取最高的。
结果就变成这样,从图表最左边开始画出一条黄线,如果碰到比它高的high寄爬上去,遇不到就继续一条横线。
等到交易时间的时候就有伸出一根线像避雷针似的顶着最新一根bar的high上且没有我想象的那样沿着high来爬,无论有没有持仓。
甚至有的时候这根避雷针还不会出现。
[attach]33597[/attach]
卖空方向上线确实沿着Low来爬了,可是无论有没有持仓都一个样。没有变化!
[attach]33598[/attach]
问题是有的,就是买多方向上没办法平仓,卖空方向上它是以每个low+ATR来平仓的。我设计的是那根线加上ATR来平仓。

代码下边:GetGlobalVar(1)和GetGlobalVar(0)是我设定的起点价格。
线的代码
        If(A_BuyPosition>0 or A_SellPosition>0)
        {
        Peak = Max(High,GetGlobalVar(1));
        Peak = Max(Peak,Peak[1]);
        Bottom = Min(Low,GetGlobalVar(0));
        Bottom = Min(Low,Low[1]);
        }Else
        {
        Peak = high;
        Bottom = Low;
        }
        PlotNumeric("Peak",Peak);
        PlotNumeric("Stop",Peak-ATR[1]);
        PlotNumeric("Bottom",Bottom);
        PlotNumeric("Stop",Bottom+ATR[1]);

作者: 小米    时间: 2016-3-31 16:18:23

a_xxx类函数只在最后K线效,用于判断条件是没法在历史K线得到相应的合理的值的
可以在帮助里看到无效的数值型是一个大于0的数值,所以如此条件的判断是不会执行到else那一步的(除非图表关联了帐户并在最后K线上且确实帐户没有该持仓时)。
建议这里还是不要加帐户函数的判断了。
作者: gxqh000216    时间: 2016-3-31 16:51:40

小米 发表于 2016-3-31 16:18
a_xxx类函数只在最后K线效,用于判断条件是没法在历史K线得到相应的合理的值的
可以在帮助里看到无效的数值 ...

因为我的起步的值和持仓价格是有关的。那么我该用什么函数来获得入场价格?毕竟我是用A_sendorder来发单的,不用A函数该如何取得入场价格以及仓位信息?
作者: 小米    时间: 2016-4-1 09:13:01

gxqh000216 发表于 2016-3-31 16:51
因为我的起步的值和持仓价格是有关的。那么我该用什么函数来获得入场价格?毕竟我是用A_sendorder来发单 ...

可以用函数a_avgbuyprice,a_avgsellprice.读帐户的持仓持仓均价来获取入场价格(隔夜仓会读到持仓均价为昨结价)。
仓位信息可用a_buyposition,a_sellposition来判断。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2