金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2765|回复: 9

记录

[复制链接]

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2023-5-22 15:21 | 显示全部楼层 |阅读模式
老师 下面的代码可以改成这样吗?
模型里面有不同的开平仓条件,都是独立运行的,每个开平仓都用全局变量记录 做开关 和次数。
当日1一种开仓信号连续开仓5次都亏损,就停止这种开仓条件,并用函数输出这种情况,方便查看。
每种开平仓条件全局变量怎么处理的说下,不知道是不是 IF条件1  AND HOLDING<0 THEN 开关:=1; (条件1 开空单)



VARIABLE:ct:=0,;



td:=TODAYBAR;

//统计连续交易的次数(每个交易日有开仓就算)
if time=CLOSETIME(0) and ENTERBARS<>-1  then
begin
if ENTERBARS+1<td then ct:=ct+1;
if ENTERBARS+1>=td  then ct:=0;//如果连续交易中断 则重置为0
end


cd:cross(ct,3);//标记连续四个交易日有下单

LEN:=BARSLAST(CD);

TCD:COUNT(TIME=CLOSETIME(0),LEN);//连续交易四个交易日后的 累计交易日次数


ma5:=ma(c,5);
ma10:=ma(c,10);

kd:cross(ma5,ma10) and (VALID(TCD)=0 or TCD>5);
buy(KD,1,market);

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-22 15:30 | 显示全部楼层
不好处理的。首先你不能有加仓。一开一平这样才可能行。


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

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-5-22 15:36 | 显示全部楼层
技术009 发表于 2023-5-22 15:30
不好处理的。首先你不能有加仓。一开一平这样才可能行。

不加仓 每个条件独立运行的 只做开平仓  1有多仓,其他条件要开空的时候会平掉1的多仓 再开仓。我想进行判断某个开平仓连续亏损 就让他停止 并输出  方便及时查询和处理该条件的不足

补充内容 (2023-5-22 15:38):
记录的话只要记录条件A持仓到平仓这段的盈利
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-22 15:53 | 显示全部楼层
[PEL] 复制代码
VARIABLE:ct1:=0,ct2:=0,mark:=0;

ma1:ma(c,3);
ma2:ma(c,5);
ma3:ma(c,9);

kd1:cross(ma1,ma2);
kd2:cross(ma1,ma3);

pd:cross(ma3,ma1);



if kd1 and holding=0 then 
begin 
buy(1,1,market);	
mark:=1;//持仓标记为1
end 


if kd1 and holding=0 then 
begin 
buy(1,1,market);	
mark:=2;//持仓标记为2
end 

if pd and holding>0 then 
begin 
sell(1,holding,market);

if NUMPROFIT(1)<0 then 
begin
if mark=1 then ct1:=ct1+1;
if mark=2 then ct2:=ct2+1;	 
end 

if NUMPROFIT(1)>0 then //连赢直接重置
begin 

if mark=1 then ct1:=0;
if mark=2 then ct2:=0;	 	
end 
		
end 

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

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-5-22 16:07 | 显示全部楼层
技术009 发表于 2023-5-22 15:53
[mw_shl_code=pel,true]VARIABLE:ct1:=0,ct2:=0,mark:=0;

ma1:ma(c,3);

ct1=5 怎么让他停止条件开仓和输出提示呢 输出可以用前面那个字字符串输出到外面窗口查询
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-22 16:08 | 显示全部楼层
后续开仓自行判断ct1 值即可

你可以在ct1 首日为5时候

cross(ct1,4)  使用绘图函数进行输出
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-5-22 16:16 | 显示全部楼层
技术009 发表于 2023-5-22 16:08
后续开仓自行判断ct1 值即可

你可以在ct1 首日为5时候

我想用右边弹出那个字符串那种输出 能及时提示出来  绘图函数不一定看得到  可能后面才能看到
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-22 16:18 | 显示全部楼层
msgout  但是当前K满足一直满足 会一直输出。有100个分笔来,输出100次,无法很好的控制,一般仅用作调试。

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

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-5-22 16:19 | 显示全部楼层
技术009 发表于 2023-5-22 16:08
后续开仓自行判断ct1 值即可

你可以在ct1 首日为5时候

if kd1 AND CT1<=5   and holding=0 then  /这里加个 AND CT1<=5  这样对不对  连亏小于5次
begin                                                            就开仓
buy(1,1,market);   
mark:=1;//持仓标记为1
end
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-5-22 16:29 | 显示全部楼层
技术009 发表于 2023-5-22 15:53
[mw_shl_code=pel,true]VARIABLE:ct1:=0,ct2:=0,mark:=0;

ma1:ma(c,3);

这个函数是盘中及时输出吧 回测中 盘后都看不见对吧
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-28 00:36 , Processed in 0.087526 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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