首页 海龟交易系统源码

海龟交易系统源码

举报
开通vip

海龟交易系统源码海龟交易系统源码 //------------------------------------------------------------------------ // 简称: TurtleTrader // 名称: 海龟交易系统 // 类别: 交易指令 // 类型: 其他 // 输出: //------------------------------------------------------------------------ Params Numeric RiskRatio(1); ...

海龟交易系统源码
海龟交易系统源码 //------------------------------------------------------------------------ // 简称: TurtleTrader // 名称: 海龟交易系统 // 类别: 交易指令 // 类型: 其他 // 输出: //------------------------------------------------------------------------ Params Numeric RiskRatio(1); // % Risk Per N ( 0 - 100) Numeric ATRLength(20); // 平均波动周期 ATR Length Numeric boLength(20); // 短周期 BreakOut Length Numeric fsLength(55); // 长周期 FailSafe Length Numeric teLength(10); // 离市周期 Trailing Exit Length Bool LastProfitableTradeFilter(True); // 使用入市过滤条件 Vars Numeric MinPoint; // 最小变动单位 Numeric N; // N 值 Numeric TotalEquity; // 按最新收盘价计算出的总资产 Numeric TurtleUnits; // 交易单位 NumericSeries DonchianHi; // 唐奇安通道上轨,延后1个Bar NumericSeries DonchianLo; // 唐奇安通道下轨,延后1个Bar NumericSeries fsDonchianHi; // 唐奇安通道上轨,延后1个Bar,长周期 NumericSeries fsDonchianLo; // 唐奇安通道下轨,延后1个Bar,长周期 Numeric ExitHighestPrice; // 离市时判断需要的N周期最高价 Numeric ExitLowestPrice; // 离市时判断需要的N周期最低价 Numeric myEntryPrice; // 开仓价格 Numeric myExitPrice; // 平仓价格 Bool SendOrderThisBar(False); // 当前Bar有过交易 NumericSeries preEntryPrice(0); // 前一次开仓的价格,存放到全局变量0号位置 BoolSeries PreBreakoutFailure(false); // 前一次突破是否失败 Begin If(BarStatus == 0) { preEntryPrice = InvalidNumeric; PreBreakoutFailure = false; }Else { preEntryPrice = preEntryPrice[1]; PreBreakoutFailure = PreBreakoutFailure[1]; } MinPoint = MinMove*PriceScale; N = XAverage(TrueRange,ATRLength); TotalEquity = CurrentCapital()+ Abs(CurrentContracts()*Close*ContractUnit()*BigPointValue()*MarginRatio()); TurtleUnits = (TotalEquity*RiskRatio/100) /(N * ContractUnit()*BigPointValue()); TurtleUnits = IntPart(TurtleUnits); // 对小数取整 DonchianHi = HighestFC(High[1],boLength); DonchianLo = LowestFC(Low[1],boLength); fsDonchianHi = HighestFC(High[1],fsLength); fsDonchianLo = LowestFC(Low[1],fsLength); Commentary("N="+Text(N)); Commentary("preEntryPrice="+Text(preEntryPrice)); Commentary("PreBreakoutFailure="+IIFString(PreBreakoutFailure,"True","False")); // 当不使用过滤条件,或者使用过滤条件并且条件为PreBreakoutFailure为True进行后 续操作 If(MarketPosition == 0 && ((!LastProfitableTradeFilter) Or (PreBreakoutFailure))) { // 突破开仓 If(CrossOver(High,DonchianHi) && TurtleUnits >= 1) { // 开仓价格取突破上轨+一个价位和最高价之间的较小值,这样能更接近真实情况,并能尽 量保证成交 myEntryPrice = min(high,DonchianHi + MinPoint); myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice); // 大跳空的时候用开 盘价代替 preEntryPrice = myEntryPrice; Buy(TurtleUnits,myEntryPrice); SendOrderThisBar = True; PreBreakoutFailure = False; } If(CrossUnder(Low,DonchianLo) && TurtleUnits >= 1) { // 开仓价格取突破下轨-一个价位和最低价之间的较大值,这样能更接近真实情况,并能尽量保证成交 myEntryPrice = max(low,DonchianLo - MinPoint); myEntryPrice = IIF(myEntryPrice > Open, Open,myEntryPrice); // 大跳空的时候用开盘价代替 preEntryPrice = myEntryPrice; SendOrderThisBar = True; SellShort(TurtleUnits,myEntryPrice); SendOrderThisBar = True; PreBreakoutFailure = False; } } // 长周期突破开仓 Failsafe Breakout point If(MarketPosition == 0) { Commentary("fsDonchianHi="+Text(fsDonchianHi)); If(CrossOver(High,fsDonchianHi) && TurtleUnits >= 1) { // 开仓价格取突破上轨+一个价位和最高价之间的较小值,这样能更接近真实情况,并能尽量保证成交 myEntryPrice = min(high,fsDonchianHi + MinPoint); myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice); // 大跳空的时候用开 盘价代替 preEntryPrice = myEntryPrice; Buy(TurtleUnits,myEntryPrice); SendOrderThisBar = True; PreBreakoutFailure = False; } Commentary("fsDonchianLo="+Text(fsDonchianLo)); If(CrossUnder(Low,fsDonchianLo) && TurtleUnits >= 1) { // 开仓价格取突破下轨-一个价位和最低价之间的较大值,这样能更接近真实情况,并能尽量保证成交 myEntryPrice = max(low,fsDonchianLo - MinPoint); myEntryPrice = IIF(myEntryPrice > Open, Open,myEntryPrice); // 大跳空的时候用开盘价代替 preEntryPrice = myEntryPrice; SellShort(TurtleUnits,myEntryPrice); SendOrderThisBar = True; PreBreakoutFailure = False; } } If(MarketPosition == 1) // 有多仓的情况 { // 求出持多仓时离市的条件比较值 ExitLowestPrice = Lowest(Low[1],teLength); Commentary("ExitLowestPrice="+Text(ExitLowestPrice)); If(Low < ExitLowestPrice) { myExitPrice = max(Low,ExitLowestPrice - MinPoint); myExitPrice = IIF(myExitPrice > Open, Open,myExitPrice); // 大跳空的时候用开盘价代替 Sell(0,myExitPrice); // 数量用0的情况下将全部平仓 }Else { If(preEntryPrice!=InvalidNumeric && TurtleUnits >= 1) { If(Open >= preEntryPrice + 0.5*N) // 如果开盘就超过设定的1/2N,则直接用开盘价增仓。 { myEntryPrice = Open; preEntryPrice = myEntryPrice; Buy(TurtleUnits,myEntryPrice); SendOrderThisBar = True; } while(High >= preEntryPrice + 0.5*N) // 以最高价为 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ,判断能进行几次增仓 { myEntryPrice = preEntryPrice + 0.5 * N; preEntryPrice = myEntryPrice; Buy(TurtleUnits,myEntryPrice); SendOrderThisBar = True; } } // 止损指令 If(Low <= preEntryPrice - 2 * N && SendOrderThisBar == false) // 加仓Bar不止损 { myExitPrice = preEntryPrice - 2 * N; Sell(0,myExitPrice); // 数量用0的情况下将全部平仓 PreBreakoutFailure = True; } } }Else If(MarketPosition ==-1) // 有空仓的情况 { // 求出持空仓时离市的条件比较值 ExitHighestPrice = Highest(High[1],teLength); Commentary("ExitHighestPrice="+Text(ExitHighestPrice)); If(High > ExitHighestPrice) { myExitPrice = Min(High,ExitHighestPrice + MinPoint); myExitPrice = IIF(myExitPrice < Open, Open,myExitPrice); // 大跳空的时候用开盘价代替 BuyToCover(0,myExitPrice); // 数量用0的情况下将全部平仓 }Else { If(preEntryPrice!=InvalidNumeric && TurtleUnits >= 1) { If(Open <= preEntryPrice - 0.5*N) // 如果开盘就超过设定的1/2N,则直接用开盘价增仓。 { myEntryPrice = Open; preEntryPrice = myEntryPrice; SellShort(TurtleUnits,myEntryPrice); SendOrderThisBar = True; } while(Low <= preEntryPrice - 0.5*N) // 以最低价为标准,判断能进行几次增仓 { myEntryPrice = preEntryPrice - 0.5 * N; preEntryPrice = myEntryPrice; SellShort(TurtleUnits,myEntryPrice); SendOrderThisBar = True; } } // 止损指令 If(High >= preEntryPrice + 2 * N &&SendOrderThisBar==false) // 加仓Bar不止损 { myExitPrice = preEntryPrice + 2 * N; BuyToCover(0,myExitPrice); // 数量用0的情况下将全部平仓 PreBreakoutFailure = True; } } } End //------------------------------------------------------------------------ // 编译版本 GS2004.06.12 // 版权所有 TradeBlazer Software 2003,2008 // 更改声明 TradeBlazer Software保留对TradeBlazer平 // 台每一版本的TradeBlazer公式修改和重写的权利 //------------------------------------------------------------------------
本文档为【海龟交易系统源码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_737352
暂无简介~
格式:doc
大小:26KB
软件:Word
页数:9
分类:生活休闲
上传时间:2017-10-17
浏览量:58