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 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容