自动化交易示例_第1页
自动化交易示例_第2页
自动化交易示例_第3页
自动化交易示例_第4页
自动化交易示例_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、inputs:Length( 60 ) ;Buy ( PChLE ) next bar at HighestFC( High, Length ) + 3 point stop ;Sell Short ( PChSE ) next bar at LowestFC( Low, Length ) - 3 point stop ;金魔方智能交易攻略(1)-交易指令基础作者:仁心慧能博庭公司推出的金魔方软件继承了飞狐交易师优秀的技术分析功能,并且增加了许多新特性,尤其是在公式系统和程序化交易方面,祝愿金魔方再创辉煌!金魔方用于编写公式的语言称为金语言(KingLanguage,KL),它有许多增强的特性

2、,我们将逐步讲解。金魔方在公式树中增设了一项新的智能交易公式类型,它与旧的交易系统公式相似而又不同。旧交易系统的范式是:交易信号: 条件表达式新智能交易的范式是:If 条件表达式Then 交易指令与交易系统的四种信号对应,新智能交易也有四种基本指令,如下所示:交易类别:老交易系统信号 新智能交易指令开多、多头开仓、买入开仓、买入:ENTERLONG Buy平多、多头平仓、卖出平仓、卖出:EXITLONG Sell开空、空头开仓、卖出开仓、空头卖出:ENTERSHORT SellShort平空、空头平仓、买入平仓、空头回补:EXITSHORT BuyTocover旧交易系统只能定义交易信号,但无

3、法在公式中进行仓位控制等复杂操作。新智能交易公式可以通过交易指令的参数以及许多交易相关函数进行各式各样的精细控制。最好的学习方法是多实践。让我们开始创建公式,在公式树【智能交易】下【新建文件夹】,命名为“攻略”,然后在其下【新建公式】,输入名称“例1_1”,确定后,出现公式编辑器,输入以下源代码:1. /-金魔方智能交易公式-2. /例1_1 均线交叉延时过滤买卖策略3. 策略:4. 1.收盘价金叉30周期均线,且在其上延时几个周期后买入5. 2.收盘价死叉30周期均线,且在其下延时几个周期后卖出6. 3.外部参数切换多种类型均线7. 8. input:9. 均线周期数(30,5,200,5)

4、, /缺省值,最小值,最大值,步长10. 延时周期数(0,0,6,1), 均线类型(1,1,5,1);11. switch 均线类型 begin 12. case 1: MA1 := MA(C,均线周期数); 13. case 2: MA1 := MA(H+L+C)/3,均线周期数); 14. case 3: MA1 := EMA(C,均线周期数); 15. case 4: MA1 := WMA(C,均线周期数); 16. case 5: MA1 := SMA(C,均线周期数,1);17. end18. Plot(MA1,均线); /显示均线19. bEnterLong := BarsLast

5、(Cross(C, MA1)=延时周期数 And CMA1;20. bExitLong := BarsLast(Cross(MA1,C)=延时周期数 And C(100+Pct)/100;11. bEnterShort := (AMA10/AMA11)(100-Pct)/100;12. if bEnterLong then Buy;13. if bEnterShort then SellShort;14. 15. 注解:16. 1.AdaptiveMovAvg为自适应移动平均线,其参数FL=2,SL=30为Kaufman在其精明交易者中所用的数值17. 2.序列下标表示K线位置,AMA10表示

6、取当前周期的值,AMA11表示取前一个周期的值18. 3.当AMA1上升且大于前值百分之Pct时买多,反之卖空19. 复制代码有图有真相:如图所示,多了蓝色箭头表示空头交易,我们发现,多头平仓交易与空头开仓交易同时执行,查看交易明细证实了这一点。这是因为:1、单一策略只能持多仓、持空仓、无持仓三种状态,不允许多空双向同时持仓。2、某交易指令开仓时,如果已有反向持仓,先自动平掉旧仓再反手开新仓。本例在市场中始终持仓,空头开仓时会自动先平掉原有的多头持仓,反之亦然。多空交易交错发生,不需要写平仓指令。 这种机制使得编写公式特别简洁,如果允许同时持有多头和空头仓,公式的逻辑和函数、语句将变得很复杂,

7、难以掌握。虽然单 一策略不能同时有多头和空头的持仓,但不同策略可以持有不同方向的仓位,例如策略A持有多头,策略B持有空头,它们互不干扰,而且,不同的策略可以编写在 同一个公式文件中,如何实现?敬请持续关注本攻略! 以上例子属于趋势交易策略,我们再试试用布林通道实现振荡交易策略。1. /-金魔方智能交易公式-2. /例1_3布林通道振荡策略3. 策略:4. 1.最低价低于下轨后开多,最高价高于中线后平多5. 2.最高价高于上轨后开空,最低价低于中线后平空6. 3.可连续同向开仓3次7. 8. input: 9. M(20,5,200,5), N(2), S(3);10. /计算布林通道11. M

8、id : MA(C,M);12. Upper: Mid + N*STD(C,M);13. Lower: Mid - N*STD(C,M);14.15. AllowSameEntries(S); 16. bEnterLong := L Mid; /多头平仓条件18. bEnterShort := H Upper; /空头开仓条件19. bExitShort := L Mid; /空头平仓条件20. if bEnterLong then Buy;21. if bExitLong then Sell;22. if bEnterShort then SellShort;23. if bExitShor

9、t then BuyToCover;24. 25. 注解:26. 1.AllowSameEntries函数设置允许连续同向开仓最大次数27. 默认不能连续开同向仓复制代码有图有真相:如图所示,可以用AllowSameEntries函数控制同方向连续开仓的最大次数,如果没有用到这个函数,或者把S参数设置为1,则在已有持仓情况下,不再连续开同方向的仓,大家可以试试。默认不能连续开同向仓,也是为了使大多数策略的公式编写简单,逻辑清晰。从以上的例子,我们知道,不带任何参数的交易指令是在信号发生的下一周期开盘时进行交易的,因为本周期收盘时才能确定信号最终不变的状态,但那一瞬间却是下不到单的。在公式编辑器

10、中把鼠标移到Buy函数名处,出现浮动信息窗, 看到函数说明,我们发现其实它有很多参数,如何应用这些参数?如何使用其它的下单方式、控制下单时机、价位和数量吗?如果想在收盘时下单怎么办呢?另外, 默认的交易数量是如何定的呢?回想起【策略设置】中有“委托数量”的设置,是在那里设置的吗?且听下回分解!金魔方智能交易攻略(2)-交易指令进阶作者:仁心慧能以多头开平仓函数为例:Buy(Symbol=,Size=DEFAULT,Price=0,Slippage=0,OT=OT_MARKET,OB=OB_NEXTBAR,EntryName=)Sell(Symbol=,Size=DEFAULT,Price=0,

11、Slippage=-1,OT=OT_MARKET,OB=OB_NEXTBAR,ExitName=)括号里面表示函数的参数,之所以见到有赋值,表示如果不写这个参数,其默认值为等号后面的值,实际应用时填入需要指定的值,而不是写赋值语句。例如:Buy;等价于 Buy(, DEFAULT, 0, 0,OT_Market, OB_NextBar, );Buy(,2);等价于 Buy(, 2, 0, 0,OT_Market, OB_NextBar, );Buy(,2, 0,1);等价于 Buy(, 2, 0, 1,OT_Market, OB_NextBar, );Buy(,2, 1000,0,OT_LIM

12、IT);等价于 Buy(, 2, 1000, 0,OT_LIMIT, OB_NextBar, );也就是说,如果你不写从后到前的参数,系统会自动替你填进那些参数,怎么填呢?就是格式中等号后面的那些值。平仓函数后有尖括号括起来的,表示这是可选的,需要用到时才写。这类函数可以设置交易商品、委托类型、时机、数量、价格、滑移价差,还可以指定一个开仓名EntryName,用于标识不同的交易信号所开的仓,以及今后的单独控制;平仓函数则可指定一个平仓名ExitName,并且用from 表示平其中某种信号开的仓。函数的参量后若有等号,表示等号后的值是默认值,这样的参数按照从后到前的顺序,可以省略不写。省略所有

13、参数的交易指令,其委托数量是取用【策略设置】中的数值,可以为固定数量,也可以由资金自动计算下单量。缺省的交易时机和类型是次周期(OB_NEXTBAR)市价单(OT_MARKET),市价单是要求立即成交的委托单,次周期市价单在历史测评时以下一周期的开盘价作为委托成交价,在实际交易中以周期开始时的市价下单,委托价格一般在买入时为卖一价,卖出时为买一价,有时再加减允许的滑移价差,以保证立即成交。更详细的参数说明可参看公式编辑器里的函数说明,我们还是多做些实验吧。1. /-金魔方智能交易公式-2. /例2_1 一目均衡多空策略3. 策略:4. 1.转换线金叉基准线,本周期收盘时平空反手做多5. 2.转

14、换线死叉基准线,本周期收盘时平多反手做空6. 3.多头自开仓20周期后平仓7. 8. input:9. SN(26), FN(9); 10. 基准线: (HHV(H,SN)+LLV(L,SN)/2;11. 转换线: (HHV(H,FN)+LLV(L,FN)/2;12. bEnterLong := CrossOver(转换线, 基准线);13. bEnterShort := CrossUnder(转换线, 基准线);14. if bEnterLong then Buy(, DEFAULT, 0, 0, OT_CLOSE, OB_THISBAR);15. if bEnterShort then S

15、ellShort (, DEFAULT, 0, 0, OT_CLOSE, OB_THISBAR);16. if BarsSinceEntry(0) = 20 then Sell;17. if BarsSinceEntry(0) = 20 then BuyToCover;18. 19. 注解:20. 1.CrossOver函数等同于Cross函数21. 2.开仓DEFAULT指定的下单量为策略设置中的委托数量22. 平仓函数里的DEFAULT表示全部平仓23. 3.OT_CLOSE 与 OB_THISBAR 配合指定本周期收盘时交易,历史回测时以本周期收盘价作为成交价格,24. 实盘自动交易时,

16、对于分钟线周期,其实是在本周期结束,下一周期开始时下市价单的,25. 对于日线周期,或者对于分钟线当天收盘的最后一个周期,26. 则下单时机在策略设置-自动交易中的“日收盘交易在(n)秒前下单”指定。27. 复制代码有图有真相:对于例1_3的布林通道振荡策略,若想在价格达到上下轨或均线时下单,公式如下:1. /-金魔方智能交易公式-2. /例2_2布林通道振荡策略之二3. 策略:4. 1.价格跌至下轨时开多,价格升至中线时平多5. 2.价格升至上轨时开空,价格跌至中线时平空6. 7. input:8. M(20,5,200,5), N(2), S(3);9. Mid :MA(C,M);10.

17、Upper: Mid + N*STD(C,M),Shift1;11. Lower: Mid - N*STD(C,M),Shift1;12. Buy(, 1, Lower, 0, OT_LIMIT);13. Sell(, 1, Mid, 0, OT_LIMIT);14. SellShort(, 1, Upper, 0, OT_LIMIT,OB_NEXTBAR);15. BuyToCover(, 1, Mid, 0, OT_LIMIT,OB_NEXTBAR);16. 17. 注解:18. 1.Shift1 使指标线向右偏移1个周期,使得它显示时与NEXTBAR的交易时机对上。19. 复制代码有图有

18、真相:如 图所示,当价格跌到前周期的下轨值时买入,然后价格达到前周期的均线值时卖出,因本周期未结束时,指标值是不定的,所以我们用上一周期的指标值,那么,交 易指令的OB参数还是OB_NEXTBAR,可省略,表示在下一周期用本周期的指标值下单,下单类型为OT_LIMIT限价单,限定价格Price参数为 布林线下轨Lower等指标值。这个策略在行情盘整时看起来不错,但在趋势行情时会亏损,那么,我们再来个反向操作策略,并且把布林通道改为肯特纳(Keltner)通道,公式如下:1. /-金魔方智能交易公式-2. /例2_3肯特纳(Keltner)通道趋势策略3. 策略:4. 1.价格升破上轨时开多,价

19、格跌至中线时平多5. 2.价格跌破下轨时开空,价格升至中线时平空6. 7. input:8. M(20,5,200,5), N(2);9. Mid :EMA(C,M);10. Upper: Mid + N*ATR(10),Shift1;11. Lower: Mid - N*ATR(10),Shift1;12. Comment(突破买入价: , Upper1:8:2), ColorRed;13. Comment(突破卖空价: , Lower1:8:2), ColorBlue;14. Buy(, 2, Upper+MinDiff, -1, OT_STOP);15. Sell(, DEFAULT,

20、Mid, -1, OT_STOP);16. SellShort(, 2, Lower-MinDiff, -1, OT_STOP);17. BuyToCover(, DEFAULT, Mid, -1, OT_STOP);18. 19. 注解:20. 1.ATR(10)为10周期平均真实波幅,均线加减ATR倍数即形成肯特纳(Keltner)通道21. 2.Comment(突破买入价: , Upper1:8:2)在主图左上角显示提示信息,22. 此处指定输出的数字串为8个字符长度,带2位小数;可以指定颜色23. 3.平仓函数委托数量为DEFAULT表示全部平仓24. 复制代码运行结果如下图:如图所示

21、,这次的开平仓正好和前例是反着的,因为下单类型为OT_STOP停损单,它与限价单正好是相反的,当我们要买 入时,限价单是埋在当前市价的下方,等待价格下跌到限价时成交,而停损单是在当前市价的上方,等待价格向上突破时成交。卖出时方向相反。对于停损单这个术 语,卖出停损容易明白,对于买入开仓,可以这样理解,因为我是要买入的,价格在不断往上行,少赚也是一种亏损,所以在价格升到一定位置时买入“停损”。需要注意的是,停损价之后的Slippage参数都被设为-1,这表示只要价格突破停损价就交易,例如次日跳空高开,不管多高都要买入。如果要限制交易价格,太高了就不买入,那就设置Slippage参数为允许的范围,

22、这种单叫做停损限价单,请自行修改测试。这次我们在公式的交易指令函数中指定委托数量为2,可以把鼠标移到交易箭头处或查看测评报告中的交易明细。以上的趋势和振荡策略实例在贴图中都用于日线周期,自动交易常用于日内交易,这类公式有些什么特殊的编制技巧呢?且听下回分解!金魔方智能交易攻略(3)-日内交易之开盘区间突破作者:仁心慧能日内交易常用的一类策略是开盘区间突破,它与前例的通道突破策略相似,其基本公式是:1. /-金魔方智能交易公式-2. /例3_1 开盘区间突破策略3. /用于分钟线周期4. 策略:5. 1.当日开盘价加减指定价差形成区间6. 2.突破区间高点做多,跌破区间低点做空7. 3.当天仅做

23、多1次,做空1次8. 4.日内交易,收盘前清仓9. 10. input: 11. Rng(10), /区间范围12. EndTime(1400);/下午14:00以后不开仓13. RngH: OpenD(0) + Rng; 14. RngL: OpenD(0) - Rng;15. if Time EndTime*100 then begin16. if EntriesToday(Date,MP_LONG)1 then17. Buy(, 2, RngH, -1, OT_STOP);18. if ExitsToday(Date,MP_SHORT)1 then19. SellShort(, 2, R

24、ngL, -1, OT_STOP); 20. end;21. SetExitOnClose;22. 23. 注解:24. 1.OpenD(0)返回当日开盘价,这套函数在日内交易时方便常用;25. 2.EntriesToday(Date,MP_LONG)取得当天多头开仓次数,MP_LONG 是值为1的宏;26. 3.ExitsToday (Date,MP_SHORT)取得当天空头平仓次数,MP_SHORT 是值为-1的宏;27. 4.SetExitOnClose用于在收市时清仓,历史测评时以收盘价作为平仓价,自动交易时在收市前若干秒平仓,可在【策略设置】中设置,默认在收市前60秒清仓。28. 复

25、制代码如图所示,该策略以当日开盘价加减由Rng参数指定的范围,形成一个区间,当价格突破区间时进场交易,收盘时清仓不过夜。上例的区间范围Rng是个常数,不能适应市场变动,所以Rng通常用各种算法得到,例如,著名的Dual Thrust系统曾长期在交易系统排行榜名列三甲,其原始公式应用于日线周期,不太能如实反映日内波动,我们把它改造为应用于分钟周期的策略:1. /-金魔方智能交易公式-2. /例3_2 Dual Thrust日内策略3. /用于1分钟-15分钟周期4. 策略:5. 1.根据前几日的波动范围动态调整开盘区间6. 2.突破区间高点做多,跌破区间低点做空7. 3.可选是否持仓过夜8. 9

26、. input: 10. K1(0.5),K2(0.5),Mday(1),Nday(1),11. ExitOnClose(1);12. variable: 13. BarsPerDay(48), BuyRange(1000), SellRange(1000);14. if BarPos = 1 then begin/只需计算1次15. switch DataPeriod begin /沪深300股指期货日周期数16. case 1: BarsPerDay:=270; /1分钟周期数/每日17. case 2: BarsPerDay:=54;/5分钟周期数/每日18. case 3: BarsP

27、erDay:=18;/15分钟周期数/每日19. end20. end21. Bars:= Mday*BarsPerDay;22. MHH := HHV(H,Bars)1;23. MHC := HHV(C,Bars)1;24. MLL := LLV(L,Bars)1;25. MLC := LLV(C,Bars)1;26. Bars:= Nday*BarsPerDay;27. NHH := HHV(H,Bars)1;28. NHC := HHV(C,Bars)1;29. NLL := LLV(L,Bars)1;30. NLC := LLV(C,Bars)1; 31.32. if Date Dat

28、e1 then begin/新交易日开始,计算区间范围33. BuyRange := Max(MHH - MLC, MHC - MLL);34. SellRange := Max(NHH - NLC, NHC - NLL);35. end36. RngH: OpenD(0) + K1*BuyRange; 37. RngL: OpenD(0) - K2*SellRange; 38.39. if SessionLastBar = 0 then begin40. Buy(, DEFAULT, RngH, -1, OT_STOP,OB_NEXTBAR);41. SellShort(, DEFAULT,

29、 RngL, -1, OT_STOP,OB_NEXTBAR);42. end43. if ExitOnClose then SetExitOnClose;44. 45. 注解:46. 1.用不同的参数分别设置买卖区间的幅度47. 2.BarsPerDay为1天的K线数量,只需在第1根K线时计算1次48. 用switch语句根据周期类型赋值,公式中是股指期货的每日周期数量49. 3.HHV(H,Bars)1表示取用前一周期的指标值50. 可以把之前的:=改为:进行调试51. 4.SessionLastBar函数用于判断是否是当日最后一个周期52. 5.外部参数ExitOnClose控制是否做日内

30、交易或持仓过夜53. 复制代码如图所示:可见,在同一时间段,本例的区间与上例相比较是动态变化的,各位可以修改公式参数看看运行结果。在实际交易中,分批开平仓是常用的技巧,金魔方如何实现呢?且听下回分解!金魔方智能交易攻略(4)-分批开平仓作者:仁心慧能分批开平仓不仅要求可以根据不同的信号连续进场,然后对分次开出的仓位分别控制,另外,用不同的止盈目标位分批出场也是常用的技巧,我们来看一个实例,金魔方公式如下:1. /-金魔方智能交易公式-2. /例4_1 区间突破分批策略3. 策略:4. 1.允许连续买入2次5. 2.突破20周期高点买入1次,该仓位命名为Buy16. 3.突破50周期高点买入1次

31、,该仓位命名为Buy27. 4.跌破10周期低点卖出Buy1的仓位8. 5.跌破25周期低点卖出Buy2的仓位9. 10. Buy1: HHV(H,20),Shift1;11. Buy2: HHV(H,50),Shift1;12. Sell1: LLV(L,10),Shift1; 13. Sell2: LLV(L,25),Shift1; 14. AllowSameEntries(2);15. /if EntryName Buy1 then 16. Buy(,1,Buy1+MinDiff,-1,OT_STOP,OB_NEXTBAR,Buy1);17. /if EntryName Buy2 the

32、n 18. Buy(,1,Buy2+MinDiff,-1,OT_STOP,OB_NEXTBAR,Buy2);19. Sell(,1,Sell1,-1,OT_STOP,OB_NEXTBAR,Sell1) from Buy1;20. Sell(,1,Sell2,-1,OT_STOP,OB_NEXTBAR,Sell2) from Buy2;21. 22. 注解:23. 1.MinDiff 为价格最小变动单位。24. 2.用EntryName函数识别已有哪个信号的仓位。25. 但因为即使允许连续同向开仓,也不允许连续开相同开仓名的仓,26. 所以,EntryName判断已有哪种信号持仓的语句可以不用。

33、27. 3.平仓指令函数后用from指定平掉哪个信号的仓位。28. 复制代码有图有真相:右键菜单【查看测评报告】的交易明细:可见,Sell1与Buy1、Sell2与Buy2分别一一配对,这样我们就可分别控制不同的仓位。再看一个早盘区间突破分批平仓日内交易策略,公式如下:1. /-金魔方智能交易公式-2. /例4_2 早盘区间突破分批平仓策略3. /用于5分钟周期4. 策略:5. 1.根据上午10点前的价格波动范围画出最高价水平线6. 2.下午14点前,价格突破区间高点买入2口7. 3.跌破买入价以下20点清仓止损8. 4.涨至买入价以上30点止盈其中1口9. 5.当天若有亏损交易,不再开新仓1

34、0. 6.日内交易,收市前清仓11. 12. input:13. 早盘终点时间(1000), /10:0014. 开仓结束时间(1400); /14:0015. variable: 16. ID(-1);/趋势线标识号,赋初值-117. if Date Date1 then begin/新交易日开始 18. RngH := High; 19. ID := TL_new(Date,Time,RngH,Date,Time,RngH);/新建画线 20. end21.22. if Time = 0955*100 And Time 开仓结束时间*100; /交易时间31. if bTradeTime

35、And DailyLosers(Date,0) 0 then33. SetStopLoss(止损价差*BigPointValue);34. if 止赢价差 0 then35. SetProfitTarget(止赢价差*BigPointValue);36. if 保本启动价差 0 then37. SetBreakEven(保本启动价差*BigPointValue);38. if 跟踪启动价差 0 And 跟踪回撤价差 0 then39. SetDollarTrailing(跟踪回撤价差*BigPointValue,跟踪启动价差*BigPointValue);40. if 跟踪启动价差 0 And

36、 跟踪回撤幅度 0 then41. SetPercentTrailing(跟踪启动价差*BigPointValue,跟踪回撤幅度);42. if 盘整最大价差 0 And 盘整周期数 0 then43. SetInactive(盘整最大价差*BigPointValue,盘整周期数);44. end45. else begin46. SetStopPosition;/整个仓位的止损止盈金额47. if 止损金额 0 then48. SetStopLoss(止损金额);49. if 止赢金额 0 then50. SetProfitTarget(止赢金额);51. if 保本启动金额 0 then5

37、2. SetBreakEven(保本启动金额);53. if 跟踪启动金额 0 And 跟踪回撤金额 0 then54. SetDollarTrailing(跟踪回撤金额,跟踪启动金额);55. if 跟踪启动金额 0 And 跟踪回撤幅度 0 then56. SetPercentTrailing(跟踪启动金额,跟踪回撤幅度);57. end58. 59. 注解:60. 1.OwnerScale修饰符可以使RSI指标叠加在主图上61. 2.LineThick0修饰符用于查看底背离状态而不画出指标线62. 3.Divergence函数可用于判断指标与价格走势的背离,63. 波谷点是前后各N个周期

38、的相对低点,这个N即为波谷强度64. 最后一个参数为1表示判断顶背离(熊背离),为-1表示判断底背离(牛背离)65. 复制代码有图有真相:可以看到,在买入前,RSI指标与价格走势发生了背离,当RSI上穿25时,发出买入指令,之后止盈平仓。之前介绍的都是指标交易策略,金魔方能否实现形态交易呢?比如趋势线交易?SetStopLoss之类的函数实现了经典的风险控制技巧,它们在满足条件时都是全部清仓的。我们怎样通过Sell/BuyToCover平仓函数和一些交易状态函数实现更灵活的控制?且听下回分解!金魔方智能交易攻略(6)-自动趋势线交易策略作者:仁心慧能之前介绍过画水平线,金魔方还可以通过波峰、波

39、谷点函数自动画出趋势线并据此交易,让我们看看这个公式:1. /-金魔方智能交易公式-2. /例6_1 自动趋势线交易加分级锁定盈利策略3. /用于5分钟周期4. 策略:5. 1.在当天5分钟周期走势上自动画出下降趋势线6. 2.突破下降趋势线买入7. 3.当最大浮盈达到10点后,把盈利锁定在买入价之上1点8. 4.当最大浮盈达到20点后,把盈利锁定在买入价之上8点9. 5.当最大浮盈达到30点后,把盈利锁定在买入价之上10点10. 6.买入价之上50点为止盈位,买入价之下10点为止损位11. 12. input: 波峰强度(3);13. const: 点数量(5);14. array: 波峰点

40、日期点数量(0),波峰点时间点数量(0),波峰点数值点数量(0);15. variable: 下降线ID(-1), 起点下标(0);16.17. if Date Date1 then begin /每个交易日内重新找趋势线18. /print(=, Date, =);19. 下降线ID := -1; 20. for pos=0 to 点数量 do begin /清空数组21. 波峰点日期pos:=0; 波峰点时间pos:=0; 波峰点数值pos:=0;22. end23. end24.25. 位置 : SwingHighBar(1,High,波峰强度,波峰强度+1),linethick0;26

41、.27. if 位置 = 波峰强度 then begin/出现新的波峰点28. /该波峰点是当天的且没被记录过29. if Date位置 = Date And Time位置 波峰点时间0 then begin30. /print(时间:, Time/100, 波峰强度: , 波峰强度);31.32. for pos = 点数量-1 DownTo 0 do begin33. 波峰点日期pos+1 := 波峰点日期pos;34. 波峰点时间pos+1 := 波峰点时间pos;35. 波峰点数值pos+1 := 波峰点数值pos;36. end37. /将新波峰点存入数组下标0的位置38. 波峰点日

42、期0 := Date波峰强度;39. 波峰点时间0 := Time波峰强度;40. 波峰点数值0 := High波峰强度;41. /print(时间:, 波峰点时间0/100,数值:, 波峰点数值0);42.43. if MarketPosition 波峰点数值0 thenbegin/有更高的47. 起点下标 := pos;48. pos := 点数量+1; /For语句中再加1,然后跳出循环49. end50. end51. if pos 点数量+1then begin /表示找到有更高的波峰点52. / print(TL_SetBegin:, 波峰点时间起点下标/100,数值:, 波峰点数值起点下标);53. / print(TL_SetEnd:, 波峰点时间0/100,数值:, 波峰点数值0);54. / if 下降线ID = -1 then55. 下降线ID := TL_New(Date,Time,High,Date,Time,High); 56. TL_SetBegin(下降线ID, 波峰点日期起点下标,波峰点时间起点下标,波峰点数值起点下标);57. TL_SetEnd(下降线ID, 波

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论