金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2837|回复: 13

请教如何计算曾经最小资产?

[复制链接]

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
发表于 2023-7-3 13:17 | 显示全部楼层 |阅读模式
请教老师如何求曾经最小资产,我自己用第一种算的结果是0,,第二种算的数值总是有些错误,,请老师看看如何正确计算?

//第一种算法
VARIABLE:最小资产=0;
资产:ASSET;
//初始资产:ref(ASSET,BARPOS-1);


IF   资产<最小资产  then
     最小资产:=资产;


AddTestReport('最小资产',最小资产);

///////////第二种算法
VARIABLE:最小资产=0;
资产:ASSET;
初始资产:ref(ASSET,BARPOS-1);


IF   资产<初始资产  then
     最小资产:=资产;

AddTestReport('最小资产',最小资产);

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-3 13:24 | 显示全部楼层
这个最小资产为啥不直接用  
llv(ASSET,0)

直接算么。这里统计范围也可以调整为历史上首次开仓后位置到当前位置这样。

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-7-3 14:10 | 显示全部楼层
技术009 发表于 2023-7-3 13:24
这个最小资产为啥不直接用  
llv(ASSET,0)

嗯嗯,谢谢老师,,因为我用VARIABLE全局变量记录最小资产,是为了进一步求出最小资产发生时候的日期,,,请老师忙我写下,谢谢啦

补充内容 (2023-7-3 14:11):
请老师帮我写下最小资产和最小资产出现的日期,,谢谢老师
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-3 14:17 | 显示全部楼层
MINasset:llv(asset,0);//最小资产
len:=LLVBARS(asset,0);
dt:ref(date,len);//最小总资产对应的日期
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-7-3 14:50 | 显示全部楼层
技术009 发表于 2023-7-3 14:17
MINasset:llv(asset,0);//最小资产
len:=LLVBARS(asset,0);
dt:ref(date,len);//最小总资产对应的日期

谢谢老师
测了下,对应日期是1211210,这个是代表几几年几月几日呢?
有没有转换成年月日的函数或者方法?
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-7-3 15:19 | 显示全部楼层
技术009 发表于 2023-7-3 14:17
MINasset:llv(asset,0);//最小资产
len:=LLVBARS(asset,0);
dt:ref(date,len);//最小总资产对应的日期

哦,老师,对应日期的数字搞懂了,谢谢老师。
但是我测了下,对应的日期好像不对,不是最低点对应的日期。
另外,最小资产是不是是持仓中的资产,交易明细表里用的是平仓后的资产。
另外能否最小资产只记录平仓价格的最小资产,这样用交易明细对照时方便点
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-7-3 15:24 | 显示全部楼层
技术009 发表于 2023-7-3 14:17
MINasset:llv(asset,0);//最小资产
len:=LLVBARS(asset,0);
dt:ref(date,len);//最小总资产对应的日期

回测代码:
INPUT:NMIN(10,1,100,1),a1(61,1,100,1),a2(961,1,1000,1),a3(100,1,100,1);

ma1:=MA(c,a1);
ma2:=MA(C,a2);
ma3:=MA(c,a3);

//交易条件
开多条件:=CROSS(ma1,ma2)and holding=0;
开空条件:=CROSS(ma2,ma1)and holding=0;
收盘平仓:=TIME>=CLOSETIME(0)-NMIN*100;//收盘平仓
平多条件:=(CROSS(ma3,ma1) OR 收盘平仓)and holding=1;
平空条件:=(CROSS(ma1,ma3) OR 收盘平仓)and holding=-1;

//交易系统
开多:BUY(开多条件 ,1,MARKET);
开空:BUYSHORT(开空条件,1,MARKET);

平多:SELL(平多条件,1,MARKET);
平空:SELLSHORT(平空条件,1,MARKET);

//最小资产

MINasset:llv(asset,0);//最小资产
len:=LLVBARS(asset,0);
dt:ref(date,len),COLORWHITE;//最小总资产对应的日期

AddTestReport('最小资产',MINasset);
AddTestReport('最小资产日期',dt);



截图202307031524475820.png
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-3 15:48 | 显示全部楼层
上面那个方式是不包括浮动资产在内的。不是按照平仓的算的。还是用全局变量吧。



[PEL] 复制代码
INPUT:NMIN(10,1,100,1),a1(61,1,100,1),a2(961,1,1000,1),a3(100,1,100,1);
VARIABLE:minAsset:=-1,minDate:=0;
if minAsset=-1 then minAsset:=ASSET;
ma1:=MA(c,a1);
ma2:=MA(C,a2);
ma3:=MA(c,a3);

//交易条件
开多条件:=CROSS(ma1,ma2)and holding=0;
开空条件:=CROSS(ma2,ma1)and holding=0;
收盘平仓:=TIME>=CLOSETIME(0)-NMIN*100;//收盘平仓
平多条件:=(CROSS(ma3,ma1) OR 收盘平仓)and holding=1;
平空条件:=(CROSS(ma1,ma3) OR 收盘平仓)and holding=-1;

//交易系统
开多:BUY(开多条件 ,1,MARKET);
开空:BUYSHORT(开空条件,1,MARKET);

平多:SELL(平多条件,1,MARKET);
平空:SELLSHORT(平空条件,1,MARKET);


if holding=0 and minAsset>ASSET then 
begin 
minAsset:=ASSET;
minDate:=date;
end 
//最小资产

资产:ASSET,NOAXIS;
最小资产:minAsset;//最小资产
最小资产日期:MINDATE;
持仓:holding;


AddTestReport('最小资产',MINasset);
AddTestReport('最小资产日期',minDate);

截图202307031547467318.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-7-3 16:00 | 显示全部楼层
技术009 发表于 2023-7-3 15:48
上面那个方式是不包括浮动资产在内的。不是按照平仓的算的。还是用全局变量吧。

就是这个,就是这个,,太谢谢老师了,,
这个我自己弄了三天了,都没弄出来,,谢谢老师解决问题
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-7-3 16:20 | 显示全部楼层
技术009 发表于 2023-7-3 15:48
上面那个方式是不包括浮动资产在内的。不是按照平仓的算的。还是用全局变量吧。

if holding=0 and minAsset>ASSET then
begin
minAsset:=ASSET;
minDate:=date;
end

请教老师,这句minAsset>ASSET,我咋想不明白为啥用大于呢?这个条件的作用是什么呢?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-15 12:43 , Processed in 0.113982 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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