金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4237|回复: 8

如何定义多次亏损问题

[复制链接]

29

主题

63

帖子

63

积分

等级: 免费版

注册:
2021-8-8
曾用名:
kaiyi
发表于 2022-1-22 10:37 | 显示全部楼层 |阅读模式
可否帮忙定一段代码,比喻10个周期内,连续平仓出现两次亏损,下一次开仓就只平仓不开仓,
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-1-24 09:59 | 显示全部楼层
[PEL] 复制代码
VARIABLE:m:=0;
ma5:ma(c,5);
ma10:ma(c,10);

majc:cross(ma5,ma10);
masc:cross(ma10,ma5);


showM:m;//显示当前累加的亏损次数
10ks:m-ref(m,10);//当前亏损次数和前第10个K位置的亏损次数差值。

if majc and holding=0 then buy(1,1,market);

if masc and holding<>0 then
begin
sell(1,1,marketr);
if numprofit(1)<0 then m:=m+1;  //亏损的判断一定要放在平仓条件下进行处理
end


参考这里面统计亏损次数的方式。就是用全局变量在平仓时候 进行判断。然后记录。
只记录亏损次数。这样10个周期内是否亏损2次,直接和前第10个周期位置的全局变量值对比就行了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

29

主题

63

帖子

63

积分

等级: 免费版

注册:
2021-8-8
曾用名:
kaiyi
 楼主| 发表于 2022-1-24 10:06 | 显示全部楼层
好的,谢谢,我先消化一下,不明白再上来问
回复

使用道具 举报

29

主题

63

帖子

63

积分

等级: 免费版

注册:
2021-8-8
曾用名:
kaiyi
 楼主| 发表于 2022-1-24 10:12 | 显示全部楼层
统计有不对,如图,这里连续三笔亏损,但数据显示是9笔,,
请再修改一下



补充内容 (2022-1-24 10:16):
注明一下,我想要的是,从最近盈利那笔算,统计连续亏损次数,如图,这里就统计3笔。因为前4笔是盈利的
1108.png
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-1-24 10:17 | 显示全部楼层
你看下清楚啊。我那个统计是全部的。你要获取指定周期内的。你还要做个计算的。例子里给了的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

29

主题

63

帖子

63

积分

等级: 免费版

注册:
2021-8-8
曾用名:
kaiyi
 楼主| 发表于 2022-1-24 10:19 | 显示全部楼层
哦,明白了小了看这个10KS
回复

使用道具 举报

29

主题

63

帖子

63

积分

等级: 免费版

注册:
2021-8-8
曾用名:
kaiyi
 楼主| 发表于 2022-1-24 10:57 | 显示全部楼层
不好意思,我把这个统计加入了我的模型这个统计次数不起作为,我把模型的开平仓代码贴上来,你帮看看是否我这样加入 有问题?

VARIABLE:M:=0;
亏损次数:M;//显示当前累加的亏损次数
开多控制=1;

        IF (HOLDING<0) THEN BEGIN
                IF 开多控制  THEN BEGIN
                       反手_平空:= SELLSHORT(HOLDING<0,LOTS,LIMITR,MAX(OPEN,UPPERBAND));
                       反手_开多:=BUY(HOLDING=0,LOTS,LIMITR,MAX(OPEN,UPPERBAND));
              IF NUMPROFIT(1)<0 THEN M:=M+1;
                END
                   END
回复

使用道具 举报

29

主题

63

帖子

63

积分

等级: 免费版

注册:
2021-8-8
曾用名:
kaiyi
 楼主| 发表于 2022-1-24 11:00 | 显示全部楼层
VARIABLE:M:=0;
亏损次数:M;//显示当前累加的亏损次数
周期内亏损:M-REF(M,20);//当前亏损次数和前第10个K位置的亏损次数差值。
开多控制=1;

        IF (HOLDING<0) THEN BEGIN
                IF 开多控制  THEN BEGIN
                       反手_平空:= SELLSHORT(HOLDING<0,LOTS,LIMITR,MAX(OPEN,UPPERBAND));
                       反手_开多:=BUY(HOLDING=0,LOTS,LIMITR,MAX(OPEN,UPPERBAND));
              IF NUMPROFIT(1)<0 THEN M:=M+1;
                END
                  END


上面贴小了统计周期


回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-1-24 11:06 | 显示全部楼层
1.
                       反手_平空:= SELLSHORT(HOLDING<0,LOTS,LIMITR,MAX(OPEN,UPPERBAND));
                       反手_开多:=BUY(HOLDING=0,LOTS,LIMITR,MAX(OPEN,UPPERBAND));
              IF NUMPROFIT(1)<0 THEN M:=M+1;
这个统计要放到平仓后面,开仓前。

2.
周期内亏损:M-REF(M,min(20,BARPOS));

改进下。没考虑到K线不足20个情况。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 01:26 , Processed in 0.319483 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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