金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1590|回复: 5

关于系统自带的多头海龟源码问题

[复制链接]

103

主题

255

帖子

265

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2024-6-25 11:44 | 显示全部楼层 |阅读模式
求教老师,关于系统自带的多头海龟交易模型,有一下问题:

(1) 第一次开仓头寸计算,怀疑有问题,定位见红色部分。
HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模} //这里头寸计算,是不是应该用cash*0.01/N/交易单位
标的每波动一个ART,是一个单位风险,而这个单位风险不能超过1%。用cash*0.01/N,忽略了交易单位。这样会成倍建仓。按照2倍ATR止损,就可能是总资产的20%,而非2%
测试的开仓582手,但我觉得应该是58手。(橡胶一手10吨)
(2) 第二次开仓头寸计算,
HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模} //第二次开仓,cash只能取到可用现金,第一次占用大量现金情况下,第二次开仓极少。
比如我用橡胶连续做回测,日K线从23/03/20开始,第一次建仓582手,第二次34手。
第二次开仓,是不是应该以当时持仓总市值的0.01,用holding*0.01/N/交易单位计算,
截图202406251136028241.png

(3) 关于在日线上开仓价的实际成交价格
开1:BUY(H>=BUYHHV,HOW,MARKET);{在20日新高STOP指令买进} //问题3:如果用代码跑实盘,是否在当日最新成交价>= BUYHHV就会成交,回测的成交价格是多少?


(4) 关于退出条件:这里是不是笔误了,只有ENTERPRICE-2*N 条件不完全,另外这里的条件为什么是退出盈利呢?
IF ENTERPRICE-2*N THEN SELL(L<=SELLLLV,100%,MARKET);{退出离盈利头寸} //问题4:这里是不是笔误,应该是ENTERPRICE-2*N>C




//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//变量申明
VARIABLE:DAYCOUNT=1,POSITIONCOUNT=1,SELLSIGN=0;//定义常数变量DAYCOUNT并初始化为1,定义常数变量POSITIONCOUNT并初始化为1,定义常数变量SELLSIGN并初始化为0
VARIABLE:ENTANDEXITSIGN=1,ENTPOINT=0,EXITPOINT=0;//定义常数变量ENTANDEXITSIGN并初始化为1,定义常数变量ENTPOINT并初始化为0,定义常数变量EXITPOINT并初始化为0
VARIABLE:N=0;//定义常数变量N并初始化为0

MA1:MA(C,5);//输出5日均价
MA3:MA(C,10);//输出10日均价
M:=MA(TR,20); //真实波幅的20周期均值
BUYHHV:=HHV(H,20);//20日最高价
SELLLLV:=LLV(L,10);//10日最低价

SS:N,LINETHICK0;
//交易系统
IF BARPOS>=21 THEN BEGIN //如果从上市到现在的交易日天数大于等于21天,那么
IF BARPOS=21 THEN        //如果从上市到现在的交易日天数等于21,那么   
N:=M;                    //N=M
IF DAYCOUNT=6 OR BARPOS=21 THEN BEGIN{5天调整N值}
N:=(19*N+TR)/20;{计算N值}
DAYCOUNT:=2;
END
DAYCOUNT:=DAYCOUNT+1;
ENTPOINT:=ENTERBARS+1;
IF ENTPOINT=ENTANDEXITSIGN THEN BEGIN{说明STOP指令买进头寸成功}
POSITIONCOUNT:=POSITIONCOUNT+1;{头寸计数}
SELLSIGN:=TRUE;{开始以STOP卖出,如果达到指定的价格}
END
IF POSITIONCOUNT=1 THEN BEGIN{第一头寸}
HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模} //问题1:这里头寸计算,是不是应该用cash*0.01/N/交易单位
开1:BUY(H>=BUYHHV,HOW,MARKET);{在20日新高STOP指令买进} //问题3:如果用代码跑实盘,是否在当日最新成交价>= BUYHHV就会成交,回测的成交价格是多少?
END
IF POSITIONCOUNT=2 THEN BEGIN{如到第二头寸}
HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模} //问题2:第二次开仓,cash只能取到可用现金,第一次占用大量现金情况下,第二次开仓极少。
开2:BUY(H>=ENTERPRICE+0.5*N,HOW,MARKET);{在上头寸(即第一头寸)+0.5个N以STOP指令买进}
END
IF POSITIONCOUNT=3 THEN BEGIN{如到第三头寸}
HOW:=CASH(0)*0.01/N;
开3:BUY(H>=ENTERPRICE+0.5*N,HOW,MARKET);{在上头寸(即第二头寸)+0.5个N以STOP指令买进}
END
IF POSITIONCOUNT=4 THEN BEGIN
HOW:=CASH(0)*0.01/N;
开4:BUY(H>=ENTERPRICE+0.5*N,HOW,MARKET);
END
IF SELLSIGN=TRUE THEN BEGIN
    EXITPOINT:=EXITBARS+1;
    IF EXITPOINT=ENTANDEXITSIGN THEN BEGIN {说明卖出成功}
       POSITIONCOUNT:=1;{头寸计算复原}
       SELLSIGN:=FALSE;
    END
    IF ENTERPRICE-2*N THEN SELL(L<=SELLLLV,100%,MARKET);{退出离盈利头寸} //问题4:这里是不是笔误,应该是ENTERPRICE-2*N>C
    ELSE
    SELL(L<=ENTERPRICE-2*N,100%,MARKET);{退出亏损头寸}
    END
END;

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;

回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-6-25 13:26 | 显示全部楼层
1、这个范例仅供参考,市面上海龟交易的算法很多,个人理解上,这个位置也是应该要再除一个合约单位的。
2、cash取的是可用资金。这个范例的头寸计算是不合理的,应该是用资产来计算头寸的。这个范例还是仅供参考吧,我们提供的初衷也是便于用于代码学习用的。
3、回测中,market用的是次周期的开盘价作为成交价的。
4、是的,这个问题我们后续会调整下。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

103

主题

255

帖子

265

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-6-25 14:00 | 显示全部楼层
金字塔能提供一个可用的海龟策略么?
我想在这个基础上修改,最终跑实盘
回复

使用道具 举报

103

主题

255

帖子

265

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-6-25 14:04 | 显示全部楼层
系统自带的双向海龟策略是否可用呢?
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-6-25 14:11 | 显示全部楼层
这两个策略的交易结构并不一样的,我们提供的范例一般是供用户参考学习用的,我们看了下,结构上没有问题,可以使用,但是不太建议直接用于实盘交易的,可以先测试用下。关于多头海龟策略中的一些明显错误,我们后续会进行修改的,可能会重新编写这个策略结构了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

103

主题

255

帖子

265

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-6-25 14:20 | 显示全部楼层
谢谢,先改了跑测试盘,也不敢直接拿来跑实盘
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-29 00:54 , Processed in 0.151290 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表