Board logo

标题: [MC源码] 金肯特纳交易策略&改 (已编辑) [打印本页]

作者: 龙听    时间: 2018-12-25 14:49     标题: 金肯特纳交易策略&改 (已编辑)

金肯特纳交易策略&改

  最近有一些用户私信我:老师,我之前用XX软件做交易,现在想转到MC,策略不知道怎么写,能请给我一个范例好让我知道要怎么把自己的逻辑转换过来吗?我想了一下,这个需求有一定普遍性,所以有了今天这篇文章。
系统构成:
基于最高价、最低价、收盘价三者平均值计算而来的三价均线 基于三价均线加减真实波幅计算而来的通道上下轨
入场条件:
三价均线向上,并且价格上破通道上轨,开多单 三价均线向下,并且价格下破通道下轨,开空单
出场条件:持有多单时,价格下破三价均线,平多单 持有空单时,价格上破三价均线,平空单


回测设置:HKEX.MHI HOT 5分钟,2016.10.25~至今,初始资金3w,固定一手  一共交易3328次,已实现净利11.7w,账户资金收益比518%,初始资金收益比392%,最大潜在亏损31.4%,年化收益195%。  这种通道突破类型的策略,我们去检查信号就会发现,在盘整期有太多不必要的进场。

因此,尝试结合上一次和大家分享的RSRS指标判断,看能否过滤一些不必要的进场。
作者: 龙听    时间: 2018-12-25 14:49

  对比原始策略,交易次数减少到了2415笔,已实现净利增加2w,账户资金收益比增加36个百分点,初始资金收益比增加了66个百分点,最大潜在亏损降低7个百分点,年化收益增加33个百分点,可以说是全面胜出了。再来看盘整部分的信号,超过一半的无效信号被过滤了。

  有不少用户之前用其他软件在做量化交易,因为MC有更佳的稳定性和自由度,现在要转换到MC平台上,遇到的问题主要是两个方面:一、语法;二、逻辑。本篇选择这样一个比较有代表性的策略转换到MC,文末提供源码下载,可以自己对照着MC的代码,领会一下如何转换,有问题欢迎给我留言。
作者: 龙听    时间: 2018-12-25 15:03

主图指标源码:
  1. input:avglength(40),atrlength(40);
  2. var:movavgval(0),upBand(0),downBand(0),mp(0);

  3. movavgval=average((high+low+close)/3,avglength);
  4. upBand=movavgval+AvgTrueRange(atrlength);
  5. downBand=movavgval-AvgTrueRange(atrlength);

  6. plot1(movavgval);
  7. plot2(upBand);
  8. plot3(downBand);
复制代码



信号策略源码:

本帖隐藏的内容需要回复才可以浏览



效果图如下:

作者: 龙听    时间: 2018-12-25 15:05

导入文档下载:
本帖隐藏的内容需要回复才可以浏览

作者: 宋亞特    时间: 2018-12-27 16:23

感謝
作者: 获嘉小马哥    时间: 2019-1-2 15:11

谢谢分享
作者: 刘一一    时间: 2019-1-4 14:57

看看
作者: 遊客    时间: 2019-2-1 15:07

感謝
作者: 陳大星    时间: 2019-3-23 12:54

謝謝
作者: 阿土伯    时间: 2019-4-12 16:48

谢谢
作者: 蓝蓝    时间: 2019-7-27 17:24

谢谢!
作者: 哈巴狗    时间: 2019-9-16 14:00

谢谢分享
作者: 阿彬    时间: 2019-9-18 14:00

感谢
作者: 卓越    时间: 2019-10-23 15:30


作者: 星辰    时间: 2019-10-28 09:00

谢谢
作者: 呆哥哥    时间: 2020-1-8 00:02

谢谢!好好学习。
作者: 古歌    时间: 2020-2-5 16:54

看看
作者: 五道口    时间: 2020-4-29 10:02

谢谢
作者: 五道口    时间: 2020-4-29 17:40

老师发个改进的文华版源码出来吧,谢谢
作者: 阿蓝    时间: 2020-5-2 02:06

谢谢分享
作者: 化身博士    时间: 2020-6-13 15:59

感谢版主分享!
作者: 徐永礼    时间: 2020-10-17 19:59

感谢版主分享
作者: 沈昌    时间: 2020-11-28 17:13

感谢
作者: 苏朝政    时间: 2021-3-25 14:28

Input:price1(close of data1),price2(close of data2);

var:mp(0),timecondition(False),timecondition1(False),timecondition2(False),filtercondition1(False),filtercondition2(False),buycondition(False),sellcondition(False),hltime1(False),hltime2(False),hltime(False);{global var}
var:ma1(0),ma2(0);{filter var}
var:VAR1(0),VAR2(0),beginbar(0),std(0),ma(0);{strategy var}

mp = marketposition;

//trading session model

timecondition1 = time>0930 and time< 1455;
timecondition2 = time>2130 and Time< 2255;
timecondition = timecondition1 or timecondition2;
hltime1 = time > 0905 and Time < 0915;{2high2sell or 2low2buy time}
hltime2 = time > 2105 and time < 2115;
hltime = hltime1 or hltime2;

//filter net model

ma1 = Average(close,5) of data2;
ma2 = Average(close,10)of data2;

filtercondition1 = ma1 > ma2 and Close > minlist(ma1,ma2); //bulltrend
filtercondition2 = ma1 < ma2 and Close < maxlist(ma1,ma2); //beartrend


//strategy model-{Aberration}
{first enter}
ma = Average(price1,35);
std = StandardDev(price1,35,1);
var1 = ma + 2*std;
var2 = ma - 2*std;

buycondition = price1 > var1;
sellcondition = price1 < var2;
{second entry}
condition1 = close[1] < var2[1] and Close > var2;
condition2 = Close[1] > var1[1] and Close < var1;

{buy/sell model}
if mp=0 then begin

if filtercondition1 and buycondition and timecondition then begin
buy("breakout-buy") 1 shares next bar at market;
end;
if filtercondition1 and condition1 and hltime then begin
buy("2low-buy") 1 shares next bar at market;
end;

if filtercondition2 and sellcondition and timecondition then begin
sellshort("breakdown-sell") 1 shares next bar at market;
end;

if filtercondition2 and condition2 and hltime then begin
sellshort("2high-sell") 1 shares next bar at market;
end;

end;

//strategy-exit

if mp=1 and Close < ma and Close-entryprice >= 5 then sell("long-exit") 1 shares next bar at market;
if mp=-1 and Close > ma and entryprice - Close>= 5 then buytocover("short-exit") 1 shares next bar at market;

//time-exit model

if mp<>0 then begin

if Time>1455 and time <1500 then begin
if mp=-1 then buytocover("short-exit at 14:55")1 shares next bar at market;
if mp= 1 then sell("long-exit at 14:55")1 shares next bar at market;
end;

if Time>2255 and time <2300  then begin
if mp=-1 then buytocover("short-exit at 22:55") 1 shares next bar at market;
if mp= 1 then sell("long-exit at 22:55") 1 shares next bar at market;
end;
end;

//set-stop model

if mp<>0 then begin

SetStopContract;

SetProfitTarget(150);

SetPercentTrailing(140,50);
end;
//check model {if strategy has problem,use print check}
{print(ma1);}
作者: 咸鱼    时间: 2021-3-31 21:16

谢谢分享!
作者: 牛頭王    时间: 2021-4-17 14:57

谢谢!
作者: 汪大東    时间: 2021-7-4 01:02

感謝分享
作者: 百家湖车神    时间: 2023-5-6 00:11

谢谢分享
作者: 深刻的小鱼    时间: 2024-3-24 16:08

学习学习




欢迎光临 龙听期货论坛 (http://www.qhlt.cn/) Powered by Discuz! 7.2