主流程序化交易软件的代码模板(一)均线指标
逻辑案例:
X日均线上穿Y日均线→ 开多信号参考
X日均线下穿Y日均线→ 平多信号参考
Y日均线上穿X日均线→ 开空信号参考
Y日均线下穿X日均线→ 平空信号参考
一、文华财经麦语言代码演示
// 参数设置
INPUT: M1(X), M2(Y); // 短均线、长均线周期
// 计算均线
MA X: MA(C, M1);
MA Y: MA(C, M2);
// 信号条件
COND1:= CROSS(MA X, MA Y); // 金叉:开多
COND2:= CROSSDOWN(MA X, MA Y); // 死叉:平多
COND3:= CROSS(MA Y, MA X); // 死叉反向:开空
COND4:= CROSSDOWN(MA Y, MA X); // 金叉反向:平空
// 交易指令
IF COND1 THEN BEGIN
BK(1); // 开多1手
END;
IF COND2 THEN BEGIN
SP(1); // 平多1手
END;
IF COND3 THEN BEGIN
SK(1); // 开空1手
END;
IF COND4 THEN BEGIN
BP(1); // 平空1手
END;
【注解】
BK = 买开(多单)
SP = 卖平(平多)
SK = 卖开(空单)
BP = 买平(平空)
默认1 手、市价、当前 K 线收盘执行
二、通达信期货通代码演示
(双均线交易信号参考:X、Y均线多空双向}
MA X:MA(C,X);
MA Y:MA(C,Y);
COND1:= CROSS(MA X, MA Y); // 金叉:开多
COND2:= CROSS(MA Y, MA X); // 死叉:平多
COND3:= CROSS(MA Y, MA X); // 死叉反向:开空
COND4:= CROSS(MA X, MA Y); // 金叉反向:平空
(图标标记}
DRAWICON(开多,L*0.98,1);{红箭头开多}
DRAWICON(平多,H*1.02,2);{绿箭头平多}
DRAWICON(开空,H*1.02,18);{蓝箭头开空}
DRAWICON(平空,L*0.98,19);{紫箭头平空}
【注解】
红箭头↑:X日上穿Y日→ 开多
绿箭头↓:X日下穿Y日→ 平多
蓝箭头↓:Y日上穿X日→ 开空
紫箭头↑:Y日下穿X日→ 平空
三、无限易程序化软件
无限易Python版代码演示
definitialize(context):
#设置参数
context.set_parameter(“fast_period”, X)
context.set_parameter(“slow_period”, Y)
defhandle_bar(context, bars):
fast = context.get_parameter(“fast_period”)
slow = context.get_parameter(“slow_period”)
bar = bars[0]
ma_fast = bar.ma(close=True, period=fast)
ma_slow = bar.ma(close=True, period=slow)
cross_up = bar.cross_up(ma_fast, ma_slow)#X上穿Y
cross_down = bar.cross_down(ma_fast, ma_slow) #X下穿Y
cross_short = bar.cross_up(ma_slow, ma_fast) #Y上穿X
cross_cover = bar.cross_down(ma_slow, ma_fast) #Y下穿X
pos_long = context.get_position_long()
pos_short = context.get_position_short()
if cross_up and pos_long == 0and pos_short == 0:
context.buy_open(volume=1)
#平多。
if cross_down and pos_long > 0:
context.sell_close(volume=pos_long)
if cross_short and pos_long == 0and pos_short == 0:
context.sell_open(volume=1)
if cross_cover and pos_short > 0:
context.buy_close(volume=pos_short)
无限易拖拽式可视化编辑器操作步骤
1、打开无限易 → 策略 → 新建“可视化策略”
2、拖入2个“MA均线”指标
MA1:周期X
MA2:周期Y
3、拖入4个“交叉判断”节点
CROSS (MA X, MA Y) → 开多
CROSSDOWN (MA X, MA Y) → 平多
CROSS (MA Y, MA X) → 开空
CROSSDOWN (MA Y, MA X) → 平空
4、拖入交易指令:
买开/ 卖平 / 卖开 / 买平
5、连线:
金叉→ 买开
死叉→ 卖平
空头金叉→ 卖开
空头死叉→ 买平
6、设置手数 1,启用持仓判断,避免重复开仓
【注解】
X上穿Y → cross_up → 开多
X下穿Y→ cross_down → 平多
Y上穿X→ 开空信号
Y下穿X→ 平空信号

四、金字塔代码演示
MA X:MA(C,X);
MA Y:MA(C,Y);
//开多条件
COND_BUY:=CROSS (MA X,MA Y);
//平多条件
COND_SELL:=CROSSDOWN(MA X,MA Y);
//开空条件
COND_SHORT:=CROSS (MA Y,MA X);
//平空条件
COND_COVER:=CROSSDOWN(MA Y,MA X);
//交易指令
IFCOND_BUY THENBUY(1,C,MARKET); //开多1手
IFCOND_SELL THENSELL(1,C,MARKET); //平多1手
IFCOND_SHORT THENSHORT(1,C,MARKET); //开空1手
IFCOND_COVER THENCOVER(1,C,MARKET); //平空1手
【注解】
BUY:开多
SELL:平多
SHORT:开空
COVER:平空
HOLDING>0:持有多单
HOLDING<0:持有空单
MARKET:市价下单
五、交易开拓者(TB)代码演示
//1.定义变量
VAR:
MA X(0), //X日均线
MA Y(0); //Y日均线
//2.初始化(只运行一次)
Once Begin
MA X:= 0;
MA Y:= 0;
End;
//3.计算指标值
MA X := Average(Close, X);
MA Y := Average(Close, Y);
//4.定义交易信号
//多单逻辑
IfCrossOver(MA X, MA Y) Then
Buy(1, Close); //金叉开多
IfCrossUnder(MA X, MA Y) Then
Sell(1, Close); //死叉平多
//空单逻辑
IfCrossUnder(MA Y, MA X) Then
Short(1, Close); //死叉开空
IfCrossOver(MA Y, MA X) Then
Cover(1, Close); //金叉平多
【注解】
Buy:开多
Sell:平多
Short:开空
Cover:平空
六、MC(MultiCharts) 代码演示
[IntrabarOrderGeneration = False]
//1.定义参数(可在图表上调整)
Inputs:
LengthFast(X), //短周期
Lengthslow(Y); //长周期
//2.计算均线
Vars:
MAFast(0),
MASlow(0);
MAFast = Average(Close, LengthFast);
MASlow = Average(Close, LengthSlow);
//3.绘图(可选,为了看均线)
Plot1(MAFast, “MA X”);
Plot2(MASlow, “MA Y”);
//4.交易逻辑
//多单流程:X上穿Y开多,下穿平多
IfCrossOver(MAFast, MASlow) Then
Buy(“Long”) Next Bar At Market; //开多
IfCrossUnder(MAFast, MASlow) Then
Sell(“LongCover”) Next Bar At Market; //平多
//空单流程:Y上穿X开空,下穿平空
IfCrossOver(MASlow, MAFast) Then
Short(“Short”) Next Bar At Market; //开空
IfCrossUnder(MASlow, MAFast) Then
Cover(“ShortCover”) Next Bar At Market; //平空
【注解】
Buy:开多
Sell:平多
Short:开空
Cover:平空
(如需就文中量化与程序化交易相关内容进行探讨,可扫码联系获取更多有关投教资料)

期市有风险,入市需谨慎。页面信息仅供参考,不构成任何交易建议及保本保收益承诺,量化交易存在固有风险,无论使用何种软件均不保证交易盈利,过往策略回测业绩不代表未来实盘收益。期货开户需完成交易者分类,适配风险承受能力,交易者需根据自身的风险承受能力自主作出交易决策并承担交易风险。
夜雨聆风