3 回答
上次你私聊过,我给你的意见是需要引入状态控制变量,比如:
状态0:
空仓状态
状态1 :
有仓位状态,假设初始头寸10000
1、监控是否亏损5%,如果达标就清仓——清仓后,状态应该变回0;
2、监控是否盈利5%,如果达标就卖出 初始头寸10000* 20%头寸,状态应该变为2( 有仓位,已经止盈一批后的状态 );
状态2:
有仓位,已经止盈一批后的状态
1、监控价格是否上涨10%(你的描述并没有讲清楚要以什么价格来计算这个涨幅,应该想明白先),如果达标,就卖出初始头寸 10000* 30%,此时状态应该变为3( 有仓位,已经止盈2批后的状态 )
2、监控价格是否下跌X%,其实这个部分不仅有继续上涨,还有回撤,你的描述没讲这个,估计你还没想明白这个部分,假设价格回撤15%,就清掉剩余仓位,那此时状态应该变回0;
状态3:
有仓位,已经止盈2批后的状态
1、跟踪监控最新价格跟10均线,价格跌破10日均线就清掉剩余仓位,那此时状态应该变回0;
所以其实动手写代码之前,还是应该先思路上厘清一下各种逻辑关系,会更清晰一点。以上供参考。
这个策略我觉得问题在于如何判断“方向正确 或 错误”;
其它止损点、止盈点很简单,用当前价格/初次买入价格,仓位用百分比*底仓数量;至于跌破均线,看你是要比较收盘跌破还是瞬间跌破,它们的区别只是判断的时间点问题,思路还是当前价格小于均线。