海龟交易系统公式.docx
- 文档编号:1022917
- 上传时间:2022-10-15
- 格式:DOCX
- 页数:7
- 大小:17.44KB
海龟交易系统公式.docx
《海龟交易系统公式.docx》由会员分享,可在线阅读,更多相关《海龟交易系统公式.docx(7页珍藏版)》请在冰豆网上搜索。
这里找到了已经实现的海龟交易系统的公式完全版.虽说是著名的海龟,但不等于说用了就100%能赚钱的.该系统是比较适合于趋势型的商品行情,如大豆等期货商品.当然要是把这个系统放在振荡型的行情商品中,估计会亏得血本无归吧。
其实现如今海龟已经不如当初那么神奇了,可以说是过了保质期吧。
哈哈。
whoknows.
不过要是把这个海龟系统理解透了,我相信对于提高交易者自身对系统交易的理解也能上一个台阶了。
以下就是海龟系统于"tradeblazer--交易开拓者"软件下的实现代码,大家可慢慢琢磨一下。
(每一行//后的中文字都是对每一步骤的解释,这样有助于大家慢慢地消化理解.)
复制内容到剪贴板
代码:
Params
NumericRiskRatio
(1);//%RiskPerN(0-100)
NumericATRLength(20);//平均波动周期ATRLength
NumericboLength(20);//短周期BreakOutLength
NumericfsLength(55);//长周期FailSafeLength
NumericteLength(10);//离市周期TrailingExitLength
BoolLastProfitableTradeFilter(True);//使用入市过滤条件
Vars
NumericN;//N值
NumericTotalEquity;//按最新收盘价计算出的总资产
NumericTurtleUnits;//交易单位
NumericSeriesDonchianHi;//唐奇安通道上轨,延后1个Bar
NumericSeriesDonchianLo;//唐奇安通道下轨,延后1个Bar
NumericSeriesfsDonchianHi;//唐奇安通道上轨,延后1个Bar,长周期
NumericSeriesfsDonchianLo;//唐奇安通道下轨,延后1个Bar,长周期
NumericExitHighestPrice;//离市时判断需要的N周期最高价
NumericExitLowestPrice;//离市时判断需要的N周期最低价
NumericmyEntryPrice;//开仓价格
NumericmyExitPrice;//平仓价格
BoolIsEntryThisBar(False);//当前Bar开过仓
BoolIsAddThisBar(False);//当前Bar有过增仓
BoolLastBreakoutWin(False);//最后一次突破是否盈利
NumericpreEntryPrice;//前一次开仓的价格,存放到全局变量0号位置
NumericpreBreakoutType(0);//前一次突破的方向,1-LONG,-1-SHORT初始值为0,存放到全局变量1号位置
NumericpreBreakOutPrice;//前一次突破的价格,存放到全局变量2号位置
Begin
If(BarStatus==0)
{
SetGlobalVar(0,InvalidNumeric);
SetGlobalVar(1,0);
SetGlobalVar(2,InvalidNumeric);
}Else
{
preBreakoutType=GetGlobalVar
(1);
preBreakOutPrice=GetGlobalVar
(2);
}
N=AverageFC(TrueRange,ATRLength);
TotalEquity=CurrentCapital()+Abs(CurrentContracts()*Close*ContractUnit()*BigPointValue()*MarginRatio());
TurtleUnits=(TotalEquity*RiskRatio/100)/(N*ContractUnit()*BigPointValue());
TurtleUnits=IntPart(TurtleUnits);//对小数取整
DonchianHi=HighestFC(Close[1],boLength);
DonchianLo=LowestFC(Close[1],boLength);
//判断最后一次突破是否盈利
If(preBreakoutType==1)
{
If(Close>PreBreakOutPrice)
{
LastBreakoutWin=True;
}
}ElseIf(preBreakoutType==-1)
{
If(Close { LastBreakoutWin=True; } } //当不使用过滤条件,或者使用过滤条件并且条件为False进行后续操作 If((NotLastProfitableTradeFilter)Or(NOTLastBreakoutWin)) { //突破开仓 If(CrossOver(High,DonchianHi)&&TurtleUnits>=1) { //开仓价格取突破上轨+一个价位和最高价之间的较小值,这样能更接近真实情况,并能尽量保证成交 preBreakoutType=1; preBreakOutPrice=Donchianhi; SetGlobalVar(1,preBreakoutType); SetGlobalVar(2,preBreakOutPrice); myEntryPrice=min(high,DonchianHi+PriceScale*MinMove); myEntryPrice=IIF(myEntryPrice If(Buy(TurtleUnits,myEntryPrice)) { IsEntryThisBar=True; SetGlobalVar(0,myEntryPrice);//保存第一次开仓的价格 } } If(CrossUnder(Low,DonchianLo)&&TurtleUnits>=1) { //开仓价格取突破下轨-一个价位和最低价之间的较大值,这样能更接近真实情况,并能尽量保证成交 preBreakoutType=-1; preBreakOutPrice=DonchianLo; SetGlobalVar(1,preBreakoutType); SetGlobalVar(2,preBreakOutPrice); myEntryPrice=max(low,DonchianLo-PriceScale*MinMove); myEntryPrice=IIF(myEntryPrice>Open,Open,myEntryPrice);//大跳空的时候用开盘价代替 If(SellShort(TurtleUnits,myEntryPrice)) { IsEntryThisBar=True; SetGlobalVar(0,myEntryPrice);//保存第一次开仓的价格 } } } //长周期突破开仓FailsafeBreakoutpoint If(MarketPosition==0) { fsDonchianHi=HighestFC(Close[1],fsLength); fsDonchianLo=LowestFC(Close[1],fsLength); If(CrossOver(High,fsDonchianHi)&&TurtleUnits>=1) { //开仓价格取突破上轨+一个价位和最高价之间的较小值,这样能更接近真实情况,并能尽量保证成交 myEntryPrice=min(high,fsDonchianHi+PriceScale*MinMove); myEntryPrice=IIF(myEntryPrice If(Buy(TurtleUnits,myEntryPrice)) { IsEntryThisBar=True; } } If(CrossUnder(Low,fsDonchianLo)&&TurtleUnits>=1) { //开仓价格取突破下轨-一个价位和最低价之间的较大值,这样能更接近真实情况,并能尽量保证成交 myEntryPrice=max(low,fsDonchianLo-PriceScale*MinMove); myEntryPrice=IIF(myEntryPrice>Open,Open,myEntryPrice);//大跳空的时候用开盘价代替 If(SellShort(TurtleUnits,myEntryPrice)) { IsEntryThisBar=True; } } } If(MarketPosition==1)//有多仓的情况 { //求出持多仓时离市的条件比较值 ExitLowestPrice=LowestFC(Low[1],teLength);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 海龟 交易系统 公式
![提示](https://static.bdocx.com/images/bang_tan.gif)