ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:71.50KB ,
资源ID:5554858      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-5554858.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(可实现自动交易的海归法则公式.doc)为本站会员(ysd1539)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

可实现自动交易的海归法则公式.doc

1、可实现的自动交易-海龟交易系统公式 这里找到了已经实现的海龟交易系统的公式完全版.虽说是著名的海龟, 但不等于说用了就100%能赚钱的. 该系统是比较适合于趋势型的商品行情,如大豆等期货商品. 当然要是把这个系统放在振荡型的行情商品中,估计会亏得血本无归吧。其实现如今海龟已经不如当初那么神奇了,可以说是过了保质期吧。哈哈。who knows.不过要是把这个海龟系统理解透了,我相信对于提高交易者自身对系统交易的理解也能上一个台阶了。以下就是海龟系统于“tradeblazer- 交易开拓者“ 软件下的实现代码,大家可慢慢琢磨一下。(每一行/ 后的中文字都是对每一步骤的解释 ,这样有助于大家慢慢地消

2、化理解.)复制内容到剪贴板代码:ParamsNumeric RiskRatio(1); / % Risk Per N ( 0 - 100)Numeric ATRLength(20); / 平均波动周期 ATR LengthNumeric boLength(20); / 短周期 BreakOut LengthNumeric fsLength(55); / 长周期 FailSafe LengthNumeric teLength(10); / 离市周期 Trailing Exit LengthBool LastProfitableTradeFilter(True); / 使用入市过滤条件VarsNu

3、meric N; / N 值Numeric TotalEquity; / 按最新收盘价计算出的总资产Numeric TurtleUnits; / 交易单位NumericSeries DonchianHi; / 唐奇安通道上轨,延后1个 BarNumericSeries DonchianLo; / 唐奇安通道下轨,延后1个 BarNumericSeries fsDonchianHi; / 唐奇安通道上轨,延后 1个 Bar,长周期NumericSeries fsDonchianLo; / 唐奇安通道下轨,延后1个 Bar,长周期Numeric ExitHighestPrice; / 离市时判断需

4、要的 N 周期最高价Numeric ExitLowestPrice; / 离市时判断需要的 N 周期最低价Numeric myEntryPrice; / 开仓价格Numeric myExitPrice; / 平仓价格Bool IsEntryThisBar(False); / 当前 Bar 开过仓Bool IsAddThisBar(False); / 当前 Bar 有过增仓Bool LastBreakoutWin(False); / 最后一次突破是否盈利Numeric preEntryPrice; / 前一次开仓的价格,存放到全局变量0 号位置Numeric preBreakoutType(0)

5、; / 前一次突破的方向,1 - LONG , -1 - SHORT 初始值为0,存放到全局变量 1号位置Numeric preBreakOutPrice; / 前一次突破的价格,存放到全局变量2 号位置BeginIf(BarStatus = 0)SetGlobalVar(0,InvalidNumeric);SetGlobalVar(1,0);SetGlobalVar(2,InvalidNumeric);ElsepreBreakoutType = GetGlobalVar(1);preBreakOutPrice = GetGlobalVar(2);N = AverageFC(TrueRange

6、,ATRLength);TotalEquity = CurrentCapital()+ Abs(CurrentContracts()*Close*ContractUnit()*BigPointValue()*MarginRatio();TurtleUnits = (TotalEquity*RiskRatio/100) /(N * ContractUnit()*BigPointValue();TurtleUnits = IntPart(TurtleUnits); / 对小数取整DonchianHi = HighestFC(Close1,boLength);DonchianLo = LowestF

7、C(Close1,boLength);/ 判断最后一次突破是否盈利If(preBreakoutType = 1)If(Close PreBreakOutPrice)LastBreakoutWin = True;Else If(preBreakoutType = -1)If(Close = 1)/ 开仓价格取突破上轨 +一个价位和最高价之间的较小值,这样能更接近真实情况,并能尽量保证成交preBreakoutType = 1;preBreakOutPrice = Donchianhi;SetGlobalVar(1,preBreakoutType);SetGlobalVar(2,preBreakO

8、utPrice);myEntryPrice = min(high,DonchianHi + PriceScale*MinMove);myEntryPrice = IIF(myEntryPrice = 1)/ 开仓价格取突破下轨 -一个价位和最低价之间的较大值,这样能更接近真实情况,并能尽量保证成交preBreakoutType = -1;preBreakOutPrice = DonchianLo;SetGlobalVar(1,preBreakoutType);SetGlobalVar(2,preBreakOutPrice);myEntryPrice = max(low,DonchianLo -

9、 PriceScale*MinMove);myEntryPrice = IIF(myEntryPrice Open, Open,myEntryPrice); / 大跳空的时候用开盘价代替If(SellShort(TurtleUnits,myEntryPrice)IsEntryThisBar = True;SetGlobalVar(0,myEntryPrice);/ 保存第一次开仓的价格/ 长周期突破开仓 Failsafe Breakout pointIf(MarketPosition = 0)fsDonchianHi = HighestFC(Close1,fsLength);fsDonchia

10、nLo = LowestFC(Close1,fsLength);If(CrossOver(High,fsDonchianHi) myEntryPrice = IIF(myEntryPrice = 1)/ 开仓价格取突破下轨 -一个价位和最低价之间的较大值,这样能更接近真实情况,并能尽量保证成交myEntryPrice = max(low,fsDonchianLo - PriceScale*MinMove);myEntryPrice = IIF(myEntryPrice Open, Open,myEntryPrice); / 大跳空的时候用开盘价代替If(SellShort(TurtleUnit

11、s,myEntryPrice)IsEntryThisBar = True;If(MarketPosition = 1) / 有多仓的情况/ 求出持多仓时离市的条件比较值ExitLowestPrice = LowestFC(Low1,teLength);If(Low = myEntryPrice + 0.5 * N If(Buy(TurtleUnits,myEntryPrice)SetGlobalVar(0,myEntryPrice);/ 保存最后一次开仓的价格/ 加上止损指令If(Close = 1)If(Open = preEntryPrice + 0.5*N) / 如果开盘就超过设定的1/

12、2N,则直接用开盘价增仓。myEntryPrice = Open;If(Buy(TurtleUnits,myEntryPrice)preEntryPrice = myEntryPrice;IsAddThisBar = True;SetGlobalVar(0,preEntryPrice);/ 保存最后一次开仓的价格while(High = preEntryPrice + 0.5*N) / 以最高价为标准,判断能进行几次增仓myEntryPrice = preEntryPrice + 0.5 * N;preEntryPrice = myEntryPrice;If(Buy(TurtleUnits,m

13、yEntryPrice)IsAddThisBar = True;SetGlobalVar(0,preEntryPrice);/ 保存最后一次开仓的价格/ 止损指令If(IsAddThisBar)/ 当前 Bar 有过增仓,此时不能直接按 Low 来判断是否止损,因为不能确定 Bar 的价格的走势,只按收盘价进行止损判断。If(Close ExitHighestPrice )myExitPrice = Min(High,ExitHighestPrice + PriceScale()*MinMove();BuyToCover(0,ExitHighestPrice); / 数量用0的情况下将全部平仓

14、Else If(IsEntryThisBar)/ 当前 Bar 开过仓的情况,如果 Close 比 myEntryPrice 小于1/2N.用收盘价加仓。If(Close = 1)myEntryPrice = myEntryPrice - 0.5 * N;If(SellShort(TurtleUnits,myEntryPrice)SetGlobalVar(0,myEntryPrice);/ 保存最后一次开仓的价格/ 加上止损指令If(Close = MyEntryPrice + 2 * N)myExitPrice = MyEntryPrice + 2 * N;BuyToCover(0,myEx

15、itPrice); / 数量用0的情况下将全部平仓ElsepreEntryPrice = GetGlobalVar(0); / 取出上一次开仓的价格If(preEntryPrice!=InvalidNumeric BuyToCover(0,myExitPrice); / 数量用0的情况下将全部平仓ElseIf(High = preEntryPrice + 2 * N)myExitPrice = preEntryPrice + 2 * N;BuyToCover(0,myExitPrice); / 数量用0的情况下将全部平仓End分析家:VARIABLE:dayCount=1,PositionCo

16、unt=1,SellSign=0; VARIABLE:EntAndExitSign=1,EntPoint=0,ExitPoint=0; VARIABLE:True=1,False=0,N=0; TR :=MAX(HIGH,CLOSE1)-MIN(LOW,CLOSE1); IF BARPOS=20 THEN BEGIN IF BARPOS=20 THEN N:=MA(TR,20); IF DayCount=5 OR BARPOS=20 THEN BEGIN5 天调整 N 值 N:=(19*N+TR)/20;计算 N 值 DayCount:=1; END DayCount:=DayCount+1;

17、 EntPoint:=ENTERBARS+1; IF EntPoint=EntAndExitSign THEN BEGIN说明 STOP 指令买进头寸成功 PositionCount:=PositionCount+1;头寸计数 SellSign:=True;开始以 STOP 卖出,如果达到指定的价格 END IF PositionCount=1 THEN BEGIN第一头寸 HOW:=CASH*0.01/N;波动性百分比决定头寸规模 BUY(HOW,STOP,HHV(H,20);在 20 日新高 STOP 指令买进 END IF PositionCount=2 THEN BEGIN如到第二头寸

18、 HOW:=CASH*0.01/N;波动性百分比决定头寸规模 BUY(HOW,STOP,ENTERPRICE+0.5*N);在上头寸(即第一头寸)+0.5 个 N 以 STOP 指令买进 END IF PositionCount=3 THEN BEGIN如到第三头寸 HOW:=CASH*0.01/N; BUY(HOW,STOP,ENTERPRICE+0.5*N);在上头寸(即第二头寸)+0.5 个 N 以 STOP 指令买进 END IF PositionCount=4 THEN BEGIN HOW:=CASH*0.01/N; BUY(HOW,STOP,ENTERPRICE+0.5*N); END IF SellSign=True THEN BEGIN ExitPoint:=EXITBARS+1; IF ExitPoint=EntAndExitSign THEN BEGIN 说明卖出成功 PositionCount:=1;头寸计算复原 SellSign:=False; END IF ENTERPRICE-2*NLLV(L,10) THEN SELL(100%,STOP,LLV(L,10);退出离盈利头寸 ELSE SELL(100%,STOP,ENTERPRICE-2*N);退出亏损头寸 END END;

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报