Params
//此处添加参数
Numeric length1(5);
Numeric length2(20);
Vars
//此处添加变量
series<Numeric> ma1;
series<Numeric> ma2;
series<bool> bool_crossover;
series<BOOL> bool_crossunder;
Global Bool trade_mark;
Defs
Events
OnBar(ArrayRef<Integer> indexs)
//初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作
{
//双均线 用收盘价计算两根均线
//金叉和死叉状态
ma1 = Average(Close,length1);
ma2 = Average(Close,length2);
PlotNumeric(\"ma1\",ma1);
PlotNumeric(\"ma2\",ma2);
//金叉
bool_crossover = ma1[1] <= ma2[1] and ma1 > ma2;
//死叉
bool_crossunder = ma1[1] >= ma2[1] and ma1 < ma2;
If(bool_crossover[1] and trade_mark)
{
Array<Integer> orderids;
A_SendOrderEx(Enum_Buy,Enum_exit,1,Open,orderids);
A_SendOrderEx(Enum_Buy,Enum_Entry,1,Open,orderids);//买
trade_mark = False;
}
If(bool_crossunder[1] and trade_mark);
{
Array<Integer> orderids;
A_SendOrderEx(Enum_sell,Enum_Exit,1,Open,orderids);//卖
A_SendOrderEx(Enum_sell,Enum_entry,1,Open,orderids);
trade_mark = False;
}
}
OnBarOpen(ArrayRef<Integer> indexs)
{
trade_mark = True;
}
a函数属于用起来自由度高,但是难度比较大的开发模式。建议在考虑用a函数前先考虑清楚自己是否具备一般程序员的开发水平。
https://www.bilibili.com/video/BV1Ma411o7nb/?spm_id_from=333.999.0.0
相关案例可以看看这个
老师可以帮我把这个策略写成代码吗?
一、定方向(只关注趋势,别关注价格)
判断趋势只看15分钟K线,趋势指标为240日均线(趋势线)。
价格处于趋势线上方,则判断趋势为多头趋势,只开仓只做多不做空,单方向交易
价格处于趋势线下方,则判断趋势为空头趋势,未来价格看跌,开仓只做空不做多,单方向交易
二、判买点
开仓指标用MA(5,10),15分钟K线上穿趋势线只做多不做空,也就是只做金叉不做死叉。
做空相反,下穿均线做空不做多,只做死叉不做金叉。
三、开仓资金比例
每个品种开仓不超过总资金的20%
金叉:MA5上穿MA10为金叉
死叉:MA5下穿MA10为死叉
四、止损设置
止损设置:做多在15分钟周期寻找近期低点设置
止损设置:做空在15分钟周期寻找近期高点设置
核心部分:
1、开仓设置止损(不设置止损,一次失败即大亏)
2、仓位控制在20%内
3、盈亏比设置,止损设置为1,那么止盈为2或3
4、当盈利达到1时(止损和浮盈想当时),止损移动到开仓,保证本单交易不出现亏损。
5、一切遵循日内原则,不隔夜,不抗单!
不免费代写