MC,套利 [MC]
-
MC用户求助:
一、对于您的这个问题,由于您的叙述过于简单,所以我只能给出比较粗糙的过程,并且给出简单的套利模板,请需要进一步的修改完善,在后面,我会给出相关的建议。
二、对于套利策略,MC有两种方式可以实现;一种是开多个图表(因为一个图表只能交易一个商品合约),另一种是使用投资组合交易功能;以下,主要是通过新建三个图表,分别用于交易螺纹、焦碳、铁矿石,代码和相关的附图如下:
三、代码解析
{三个图表的最大bar设置需要一致,而且数据范围也要一致;由于螺纹的夜盘结束时间比其它两个合约早半个小时,所以需要您在报价管理器中将其它两个合约的夜盘结束时间调整到23:00}
//shfe.rb hot,对应图1
input: length(200); //使用最近200根bar的收盘价计算价差均值和价差标准差
var: var_rb(0,data1), var_i(0,data2), var_j(0,data3); //图表中,主图是rb合约,子图2是dce.i hot合约,子图3是dce.j hot合约
var_rb=(close*bigpointvalue) data1;
var_i=(close*bigpointvalue) data2;
var_j=(close*bigpointvalue) data3;
value1=5*var_j+16*var_i-40*var_rb;
{5手焦碳的价值+16手铁矿石的价值-40倍螺纹的价值作为价差}
value2=standarddev(value1,length,2);
value3=average(value1,length);
condition1=value1 cross above (value3+3*value2);
condition2=value1 cross under (value3+value2);
condition3=value1 cross under (value3-3*value2);
condition4=value1 cross above (value3-value2);
{当价差上穿最近length根bar的+3倍标准差时,做空价差;当价差下穿+1倍标准差时,平仓空头价差;当价差下穿-3倍标准差时做多价差;当价差上穿-1倍标准差时,平仓多头坐着}
if condition1 then
buy 40 shares next bar at market; //做空价差,对应到螺纹上就是买入40手螺纹
if condition2 then
sell next bar at market; //平仓空头价差,对应到螺纹上就是平仓多头螺纹
if condition3 then
sellshort 40 shares next bar at market; //做多价差,对应到螺纹上就是卖出40手螺纹
if condition4 then
buytocover next bar at market;// 平仓多头价差,对应到螺纹上就是平仓空头螺纹
{以上是关于交易螺纹的代码的介绍,交易铁矿石和焦炭的代码逻辑相似,您可以自己看看}
//dce.i hot 对应图2
input: length(200);
var: var_rb(0,data2), var_i(0,data1), var_j(0,data3);
var_rb=(close*bigpointvalue) data2;
var_i=(close*bigpointvalue) data1;
var_j=(close*bigpointvalue) data3;
value1=5*var_j+16*var_i-40*var_rb;
value2=standarddev(value1,length,2);
value3=average(value1,length);
condition1=value1 cross above (value3+3*value2);
condition2=value1 cross under (value3+value2);
condition3=value1 cross under (value3-3*value2);
condition4=value1 cross above (value3-value2);
if condition1 then
sellshort 16 shares next bar at market;
if condition2 then
buytocover next bar at market;
if condition3 then
buy 16 shares next bar at market;
if condition4 then
sell next bar at market;
// dce.j hot 对应图3
input: length(200);
var: var_rb(0,data3), var_i(0,data2), var_j(0,data1);
var_rb=(close*bigpointvalue) data3;
var_i=(close*bigpointvalue) data2;
var_j=(close*bigpointvalue) data1;
value1=5*var_j+16*var_i-40*var_rb;
value2=standarddev(value1,length,2);
value3=average(value1,length);
condition1=value1 cross above (value3+3*value2);
condition2=value1 cross under (value3+value2);
condition3=value1 cross under (value3-3*value2);
condition4=value1 cross above (value3-value2);
if condition1 then
sellshort 5 shares next bar at market;
if condition2 then
buytocover next bar at market;
if condition3 then
buy 5 shares next bar at market;
if condition4 then
sell next bar at market;图1 螺纹
图2 铁矿石
图3 焦碳
-
MC回复讨论一:
一、对于您的这个问题,由于您的叙述过于简单,所以我只能给出比较粗糙的过程,并且给出简单的套利模板,请需要进一步的修改完善,在后面,我会给出相关的建议。
二、对于套利策略,MC有两种方式可以实现;一种是开多个图表(因为一个图表只能交易一个商品合约),另一种是使用投资组合交易功能;以下,主要是通过新建三个图表,分别用于交易螺纹、焦碳、铁矿石,代码和相关的附图如下:
三、代码解析
{三个图表的最大bar设置需要一致,而且数据范围也要一致;由于螺纹的夜盘结束时间比其它两个合约早半个小时,所以需要您在报价管理器中将其它两个合约的夜盘结束时间调整到23:00}
//shfe.rb hot,对应图1
input: length(200); //使用最近200根bar的收盘价计算价差均值和价差标准差
var: var_rb(0,data1), var_i(0,data2), var_j(0,data3); //图表中,主图是rb合约,子图2是dce.i hot合约,子图3是dce.j hot合约
var_rb=(close*bigpointvalue) data1;
var_i=(close*bigpointvalue) data2;
var_j=(close*bigpointvalue) data3;
value1=5*var_j+16*var_i-40*var_rb;
{5手焦碳的价值+16手铁矿石的价值-40倍螺纹的价值作为价差}
value2=standarddev(value1,length,2);
value3=average(value1,length);
condition1=value1 cross above (value3+3*value2);
condition2=value1 cross under (value3+value2);
condition3=value1 cross under (value3-3*value2);
condition4=value1 cross above (value3-value2);
{当价差上穿最近length根bar的+3倍标准差时,做空价差;当价差下穿+1倍标准差时,平仓空头价差;当价差下穿-3倍标准差时做多价差;当价差上穿-1倍标准差时,平仓多头坐着}
if condition1 then
buy 40 shares next bar at market; //做空价差,对应到螺纹上就是买入40手螺纹
if condition2 then
sell next bar at market; //平仓空头价差,对应到螺纹上就是平仓多头螺纹
if condition3 then
sellshort 40 shares next bar at market; //做多价差,对应到螺纹上就是卖出40手螺纹
if condition4 then
buytocover next bar at market;// 平仓多头价差,对应到螺纹上就是平仓空头螺纹
{以上是关于交易螺纹的代码的介绍,交易铁矿石和焦炭的代码逻辑相似,您可以自己看看}
//dce.i hot 对应图2
input: length(200);
var: var_rb(0,data2), var_i(0,data1), var_j(0,data3);
var_rb=(close*bigpointvalue) data2;
var_i=(close*bigpointvalue) data1;
var_j=(close*bigpointvalue) data3;
value1=5*var_j+16*var_i-40*var_rb;
value2=standarddev(value1,length,2);
value3=average(value1,length);
condition1=value1 cross above (value3+3*value2);
condition2=value1 cross under (value3+value2);
condition3=value1 cross under (value3-3*value2);
condition4=value1 cross above (value3-value2);
if condition1 then
sellshort 16 shares next bar at market;
if condition2 then
buytocover next bar at market;
if condition3 then
buy 16 shares next bar at market;
if condition4 then
sell next bar at market;
// dce.j hot 对应图3
input: length(200);
var: var_rb(0,data3), var_i(0,data2), var_j(0,data1);
var_rb=(close*bigpointvalue) data3;
var_i=(close*bigpointvalue) data2;
var_j=(close*bigpointvalue) data1;
value1=5*var_j+16*var_i-40*var_rb;
value2=standarddev(value1,length,2);
value3=average(value1,length);
condition1=value1 cross above (value3+3*value2);
condition2=value1 cross under (value3+value2);
condition3=value1 cross under (value3-3*value2);
condition4=value1 cross above (value3-value2);
if condition1 then
sellshort 5 shares next bar at market;
if condition2 then
buytocover next bar at market;
if condition3 then
buy 5 shares next bar at market;
if condition4 then
sell next bar at market;图1 螺纹
图2 铁矿石
图3 焦碳
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容