金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 6936|回复: 10

止损代码问题在哪

[复制链接]

227

主题

881

帖子

881

积分

等级: 免费版

注册:
2022-4-2
曾用名:
发表于 2022-10-21 09:41 | 显示全部楼层 |阅读模式
请问老师这段止损代码有什么问题,加入之后成交次数反而少了很多
////交易系统
//***********************************************
variable:movestoploss=0;     {移动止盈总开关,1为开,0为关}
//开平仓
if 开多条件 and movestoploss=0 then begin
   sellshort(holding<0,holding,thisclose);
   buy(holding=0,手数,thisclose);
   movestoploss:=1;
   end
   
if 开空条件 and movestoploss=0 then begin
   sell(holding>0,holding,thisclose);
   buyshort(holding=0,手数,thisclose);
   movestoploss:=1;
   end
//***********************************************
//二级移动止损策略
stopline:=c*vv3/300;//初始止损幅度
enterhighprice:=hhv(h,enterbars);
enterlowprice:=llv(l,enterbars);


if enterbars>0 then begin
longprofit:=enterhighprice-avgenterprice;  //多单最高利润
shortprofit:=avgenterprice-enterlowprice;//空单最高利润
end;


////////////多单跟踪止盈
if movestoploss=1 and  holding>0 then begin
        if longprofit>=1.5*stopline and longprofit<3*stopline then begin
        保本卖出止损:sell(close-avgenterprice<=0,0,thisclose);
        end;
        if longprofit>=3*stopline  then begin
        回落止盈卖出:sell(close-avgenterprice<=longprofit,0,thisclose);       
        end;
end;


/////////////空单跟踪止损
//
if movestoploss=1 and holding<0 then BEGIN
if shortprofit>=1.5*stopline and stopline<3*stopline then begin
保本买入止损:sellshort(avgenterprice-close<=0,0,thisclose);
end;
//
if movestoploss=1 and holding<0 and shortprofit>=3*stopline  then begin
回落止盈买入:sellshort(avgenterprice-close<=longprofit,0,thisclose);
end;
////***********************************************

回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2022-10-21 09:45 | 显示全部楼层
你加入移动止盈总开关的目的是什么呢。你开仓后,应该在触发了移动止盈或止损后,总开关再置为0啊,否则一直等于1的情况下,后面是不会再开仓了啊。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

227

主题

881

帖子

881

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2022-10-21 09:56 | 显示全部楼层
技术010 发表于 2022-10-21 09:45
你加入移动止盈总开关的目的是什么呢。你开仓后,应该在触发了移动止盈或止损后,总开关再置为0啊,否则一 ...

那触发后再设置为0,不就重新开仓了吗
回复

使用道具 举报

227

主题

881

帖子

881

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2022-10-21 09:58 | 显示全部楼层
技术010 发表于 2022-10-21 09:45
你加入移动止盈总开关的目的是什么呢。你开仓后,应该在触发了移动止盈或止损后,总开关再置为0啊,否则一 ...

移动止盈止损触发后再设置为0,不就重新开仓了吗;那设置全局变量的意义不就没了,跟不弄一样
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2022-10-21 09:58 | 显示全部楼层
本帖最后由 技术010 于 2022-10-21 09:59 编辑

那你是只要开1次仓?那不就是成交次数少了很多嘛。那代码有没问题啊。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

227

主题

881

帖子

881

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2022-10-21 10:03 | 显示全部楼层
技术010 发表于 2022-10-21 09:58
那你是只要开1次仓?那不就是成交次数少了很多嘛。那代码有没问题啊。

是一个日内策略,交易次数少了很多
回复

使用道具 举报

227

主题

881

帖子

881

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2022-10-21 10:05 | 显示全部楼层
技术010 发表于 2022-10-21 09:58
那你是只要开1次仓?那不就是成交次数少了很多嘛。那代码有没问题啊。

有的第二天新的开仓信号也没了
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2022-10-21 10:07 | 显示全部楼层
本帖最后由 技术010 于 2022-10-21 10:13 编辑

那你都限制了开仓的条件了,全局变量第一次开仓后置为1,那movestoploss后面一直是等于1啊,不满足开仓条件了啊。交易次数自然就少了啊。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

227

主题

881

帖子

881

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2022-10-21 10:08 | 显示全部楼层
技术010 发表于 2022-10-21 10:07
那你都限制了开仓的条件了,全局变量第一次开仓后置为1,那movestoploss后面一直是等于0啊,不满足开仓条件 ...

请问怎么处理好些
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2022-10-21 10:11 | 显示全部楼层
因为你隔天后也没有初始化为0,你得知道全局变量的用法啊,又不会主动第二天一开始就初始化的啊。你需要在代码中控制隔天了就要把这个全局初始化啊。例如:
if date<>ref(date,1) then
  movestoploss:=0;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-3 07:07 , Processed in 0.105139 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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