什么是期货程序化?
期货程序化是用文字描述具体的进场点位+加仓点位+止损点位+止盈点位,并且加入规避震荡+开平仓时间设置+规避跳空等优化思路,然后通过程序化软件中的编程功能来实现,最后借助程序化软件平台来实现自动化交易的一种模式。
什么是量化?
量化是一种交易方式,是让软件同时监控多个品种和周期去寻找开仓机会,目前大多的程序化使用者都是人工和程序化一起配合使用。一个完整的程序化等同一个完整的交易系统,非高频和短线模型单个品种监控交易机会会很少,所以需要多品种多周期监控量化交易来发现更多市场机会。
程序化交易频繁吗?是不是手续费会比较多?
程序化是否交易频繁这个需要看是哪种类型程序化模型,如果是短线或者高频类型的,那开平肯定会比较多。目前期货市场竞争比较激烈,他们给客户的手续费都比较低,最低可以给到交易所手续费+1分钱,部分期货公司可以谈交易所手续费返还60%左右,如果是资金大或者交易量大还可以谈更高优惠,这样手续费不仅低了还有返还,我们就可以节省一些手续费的支出了。
程序化可以做到稳定盈利吗?
稳定盈利的程序化肯定有,但是我们自己编写的是很难做到的,需要进行不断的完善交易系统,这个是一个漫长的过程。目前市场上大多数程序化都是阶段性盈利,比如某阶段的某个品种或者某个周期走的比较好,适合程序化模型交易思路,那盈利曲线图就好一些,如果这个阶段走势不是我们设计的程序化思路那基本都是亏损状态。所以有时候直观判断行情是震荡还是趋势都需要我们积累的盘感,我自己主要研究波浪理论,这个我觉得判断行情阶段性还是不错的。当我们大概率可以判断某个品种的某个周期的走势,我们就可以采用对用的程序化模型(适合震荡类和适合单边趋势类)来让程序自动运行,这样也是提高盈利率的。
程序化的优势是什么?
1、执行力
程序化可以实现自动开仓和自动平仓,严格来说是无需人工干预,但是再优秀的程序化也不是完美的,所以很多程序化高手都是人工和程序化结合。我们大多数的交易者都有不止损扛单的习惯,大多数交易没有规则或不按自己系统操作,这些程序化可以辅助我们纠正错误。
2、可复制
程序化本身就是一个交易系统,任何人拿来都是直接可以使用的。现在市场上很多出售程序化的,有真有假,大家在购买之前一定要测试几个月或者几年的数据,回测多个品种的历史业绩。如果程序化开仓点是以1-5分钟级别为主,至少要测试半个月以上;如果程序化是15分钟以上为主,至少要测试1个月或者更久。
3、省时间省精力
程序化的出现解决了我们长时间盯盘的问题,我们可以把自己的交易系统写成能够让程序化实现的模型,然后结合人工来操作。人工操作精力有限,比如做短线炒单高频交易、多个品种多个周期等交易时,人工操作效率低,我们就可以使用程序化开仓我们人工配合来操作。
4、提升我们的交易能力
一个好的程序化必定是经过多次的细化和完善,做到错误率最低,盈利率最大,回撤最小,稳定性最好。程序化一般分为趋势型程序化、震荡型程序化和高频短线型程序化。
程序化是复盘的好帮手,他可以发现我们没时间发现的交易特征和机会,并且验证我们的交易系统是否有效,让我们对于自己的交易系统更加了解做更好的优化。我们回测可以一次性几十个品种或者多个周期,很快就能得出结果,而且可以看几天几个月或者几年的历史回测数据。我们人工复盘一个系统是否有效可能需要几天甚至很久,如果可以写成程序化实现,只需要几分钟即可完成。
5、发展空间大
我们可以不断将程序化系统完善到极致,现在人工智能领域比较火,程序化交易也是智能化交易领域,我们可以通过不断学习将自己的程序化完善到最优,未来实现可以稳定盈利。稳定盈利的程序化不管是期货公司基金公司还是企业大佬们,他们都是比较喜欢的。自己交易还是比较难的,而且资金也有限制,当我们如果有成功的方法就可以借助这些资源来让我们的资金扩大。我们散户大多数都是上班兼职期货或者专职,目前知识付费的领域是不错的选择,可以为我们增添一份合法的收入。
程序化软件商有哪些?
期货市场目前比较常见的有:文华WH8和WH9、TB交易开拓者、金字塔、无限易、快期天勤量化、易盛极智量化、通达信量化、MC达钱、VNPY开源量化等,大部分是收费的。
还有一些交易者选择自己来开发程序化,然后申请期货公司的API接入,这种对接都是免费的,只要支持符合看穿式监管,一般期货公司都是可以接入的。
程序化有什么弊端?
1、部分直观的判断无法实现
程序化编写中,我们部分直观判断的方法是无法编写成程序化的,程序化编写是要具体到某个条件的进场。
我们拿做多的举例,可以作为程序化条件的有;金叉、双底、底部十字星、底部孕线、K线穿破某根均线、K线实体突破最近20根K线的最高点、价格突破某个点位回踩某条均线进场等等,这种条件是具体到了某个位置。
比如我们直观的想法比如多头行情,这个没有具体条件明确,所以无法编写。还有就是目前市场上很多技术指标都有未来函数,这种未来函数的很多平台不支持,部分支持的其实写出来效果会比较差,因为他们的点位是不能固定的,不利于我们后期完善自己的交易系统。
2、技术和资金门槛
技术就是编程,靠我们自己还是比较难的,最好是找专业的人做专业的事情。资金门槛就是我们需要使用的资金,现在期货市场的保证金有3000左右就可以买1手的,也有比较贵的品种,我们做程序化不可能是盯着一个品种,一般会监控3-5个品种或者周期,所以我们需要准备操作品种的足够本金+抵御风险的资金。交易仓位尽量是不要超过60%风险,安全第一位。
新手如何选择学习程序化?
程序化涉及到编程,自己学习入门比较难,现在很多期货公司的居间人或者客户经理是免费协助编程的,或者就是市面上找一些编程老师,不过这种一般都是得花钱的。最后也可以选择程序化平台的技术支持,这种得购买人家的产品才可以。所以新手刚开始可以先使用模拟的程序化来入门,现在很多程序化开发商他们提供论坛免费基础编写服务,我们只需要提供自己的交易系统的编写思路然后不断完善就可以了,把写代码的事情交给专业的人更靠谱更省力。
程序化如何入门?
市场上80%的程序化都是由技术指标转化来的,我们可以把平时自己如何使用指标的方法描述出来写成程序化来做测试,看下我们的使用方法是否是可以盈利的。有很多新手交易者喜欢看均线金叉和死叉直接进场,当你把这种金叉死叉进场方式写到程序化中回测,长期下来基本都是亏损的。比如我们核心进场是金叉和死叉,我们就可以深入去细化,比如在什么行情阶段下的金叉和死叉入场,金叉和死叉出现后我们等他回调到什么位置再进进场,将程序化细致。
程序化如何编写?
以下是默认1手开平仓,没有加入加仓功能的程序化模型。
1、例如均线指标,5和10日均线金叉多死叉空,程序化自动循环交易。
MA5:MA(C,5);
MA10:MA(C,10);
CROSS(MA5,MA10),BPK;
CROSSDOWN(MA5,MA10),SPK;
AUTOFILTER;
2、例如KDJ指标,超买80上方空,超卖20下方多,程序化自动循环交易。
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:SMA(RSV,3,1);
D:SMA(K,3,1);
J:3*K-2*D;
J>80,SPK;
J<20,BPK;
AUTOFILTER;
3、例如MACD指标,金叉多死叉空,程序化自动循环交易。
DIFF:(EMA(CLOSE,20)-MA(CLOSE,340));//70
DEA : EMA(DIFF,12);
MACD :=2*(DIFF-DEA),COLORSTICK;
CROSS(DIFF,DEA),BPK;
CROSSDOWN(DIFF,DEA),SPK;
AUTOFILTER;
上面这三种是最基础的写法,可以在基础的写法中新增具体的过滤条件。
1、例如在均线的原基础条件上优化参数、添加其他指标辅助、设置止盈。
MA5:MA(CLOSE,5),COLORWHITE,LINETHICK1;
MA10:MA(CLOSE,10),COLORGREEN,LINETHICK1;
MA20:=MA(CLOSE,20),COLORYELLOW,LINETHICK2;
MA60:MA(CLOSE,60),COLORFF00FF,LINETHICK2;
DRAWICON(CROSS(MA5,MA60),MA60,1);
DRAWICON(CROSS(MA60,MA5),MA60,2);
A:=C-REF(C,DAYBARPOS);
B:(C-REF(C,DAYBARPOS))/REF(C,DAYBARPOS);
CROSS(MA5,MA60) && A>B,BPK;//金叉
CROSSDOWN(MA5,MA60) && A
C>=BKPRICE+18*MINPRICE,SP;
C<=SKPRICE-18*MINPRICE,BP;
//金叉出现,并且分时白线在黄线上进场多单,止盈20跳,出现死叉止损。
//死叉出现,并且分时白线在黄线下进场空单,止盈20跳,出现金叉止损。
AUTOFILTER;
2、例如在均线的原基础条件上新增多种子条件优化
MA5:=MA(CLOSE,5),COLORWHITE,LINETHICK1;
MA10:=MA(CLOSE,10),COLORGREEN,LINETHICK1;
MA20:=MA(CLOSE,20),COLORYELLOW,LINETHICK2;
MA60:MA(CLOSE,60),COLORFF00FF,LINETHICK2;
MID:MA(CLOSE,20),COLORYELLOW,DASHDOTDOT;//求N个周期的收盘价均线,称为布林通道中轨
TMP2:=STD(CLOSE,20),COLORYELLOW,DASHDOTDOT;//求M个周期内的收盘价的标准差
TOP:MID+2*TMP2,COLORYELLOW,DASHDOTDOT;//布林通道上轨
BOTTOM:MID-2*TMP2,COLORYELLOW,DASHDOTDOT;//布林通道下轨
A:C-REF(C,DAYBARPOS),COLORWHITE;
B:(C-REF(C,DAYBARPOS))/REF(C,DAYBARPOS),COLORYELLOW;
DRAWSL(PERIOD=1 OR PERIOD=2 OR PERIOD=3 OR PERIOD=4 OR PERIOD=5 ,VALUEWHEN(DAYBARPOS=1,REF(C,1)),0,1,0,RGB(255,128,255)),DOT;////上一个交易日收盘价1.3.5.10.15分钟显示
//判断区
ST:=ABS(C-O);
JXJC:=CROSS(MA5,MA10);
JCZQ:SUMBARS(CROSS(A,0),1);
JXSC:=CROSSDOWN(MA5,MA10);
SCZQ:SUMBARS(CROSSDOWN(A,0),1);
//多
JXJC && COUNT(JXJC,JCZQ)=2 && A>B && C>MA60,BK;
CROSSDOWN(A,-20),SP;//副图A跌破0轴>20跳
//空
JXSC && COUNT(JXSC,SCZQ)=2 && A
C>=REF(H,BARSSK)+20*MINPRICE,BP;//进场K线的高点>20跳
AUTOFILTER;
【只判断第二次死叉的那根K线是否满足】
1、副图白线首次从“0轴下”突破0轴上,主图5和10均线第二次金叉并且副图白线在上(第一次金叉不提示)
并且在60均线上方或实体突破60均线,进场多单,止损副图跌破0轴>20跳(进场K线的低点>20跳)
止损是副图跌破0轴>20跳(出阴线>20跳)
2、副图白线首次从"0轴上"跌到0轴下,主图5和10均线第二次死叉并且副图白线在下(第一次死叉不提示)
并且在60均线下方或实体跌破60均线,进场空单,止损副图突破0轴>20跳(进场K线的的高点>20跳)
止损是副图突破0轴>20跳(出阳线>20跳)
感谢大家的阅读,我是期货居间人张睿,朋友们有不明白的可以私信或者留言,欢迎大家来交流,点点关注不迷路。
期货市场投资有风险,入市需谨慎。
热门跟贴