金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 6053|回复: 39

止损

[复制链接]

32

主题

178

帖子

178

积分

等级: 免费版

注册:
2023-3-7
曾用名:
发表于 2024-3-11 10:11 | 显示全部楼层 |阅读模式
老师,你好!问下移动止损。A:开多;
B:开空;
50点多减仓:C>AVGENTERPRICE+50;
50点空减仓:C<AVGENTERPRICE-50;
下面这个你们写的移动模版里是开仓进行移动止损,我想增加:如:A开多后盈利到了50个点后开始移动止损。怎么写进去?


//理解模版精华后,各种思路可在模版里随便添加、删除、扩展等
variable:zs=c,hl=c;//声明全局变量zs、hl
ma5:=ma(c,5);
ma20:=ma(c,20);
atr:ma(h-l,20);//市场平均波动幅度
buycond:=cross(ma5,ma20);//平空开多条件
sellcond:=cross(ma20,ma5);//平多开空条件

if holding>0 then begin
多止损:zs;
if l<zs then sell(1,1,limitr,min(o,zs)-mindiff);
else if sellcond then sell(1,1,limitr,c);
end

if holding<0 then begin
空止损:zs;
if h>zs then sellshort(1,1,limitr,max(o,zs)+mindiff);
else if buycond then sellshort(1,1,limitr,c);
end

if holding=0 and buycond then begin//多头开仓
buy(1,1,limitr,c);
zs:=c-2*atr;
hl:=c;//hl开仓后的最有利价位,刚买入时,最有利价位为开仓价
end

if holding=0 and sellcond then begin//空头开仓
buyshort(1,1,limitr,c);
zs:=c+2*atr;
hl:=c;
end

if holding>0 and enterbars>0 and h>hl then begin//最高价抬升,止损位相应地抬升
hl:=h;
zs:=hl-2*atr;
end

if holding<0 and enterbars>0 and l<hl then begin//最低价下降,止损位相应地下移
hl:=l;
zs:=l+2*atr;
end






回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-3-11 10:44 | 显示全部楼层
你这里可以判断下最高价或者最低价和持仓均价的价差就行了,例如:


if holding>0 and enterbars>0 and h>hl and h1-avgenterprice>=50*mindiff then begin//最高价抬升,止损位相应地抬升
hl:=h;
zs:=hl-2*atr;
end

if holding<0 and enterbars>0 and l<hl and avgenterprice-l1>=50*mindiff then begin//最低价下降,止损位相应地下移
hl:=l;
zs:=l+2*atr;
end


也就是最大盈利大于多少,才开始给zs赋值。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

32

主题

178

帖子

178

积分

等级: 免费版

注册:
2023-3-7
曾用名:
 楼主| 发表于 2024-3-11 14:07 | 显示全部楼层
技术009 发表于 2024-3-11 10:44
你这里可以判断下最高价或者最低价和持仓均价的价差就行了,例如:

我把这两句替到你的模版里,把模板的均线改为MA5于MA120,不对啊,应该是50点后开始移动止损,现在平仓位置不是盈利50点后平仓位置

补充内容 (2024-3-11 14:08):
你能否替进去试下
回复

使用道具 举报

32

主题

178

帖子

178

积分

等级: 免费版

注册:
2023-3-7
曾用名:
 楼主| 发表于 2024-3-11 14:10 | 显示全部楼层
袁林 发表于 2024-3-11 14:07
我把这两句替到你的模版里,把模板的均线改为MA5于MA120,不对啊,应该是50点后开始移动止损,现在平仓位 ...

那条移动线应该从盈利50点才开始移动

补充内容 (2024-3-11 14:13):
即开仓后盈利50点后开始移动止损,止损不是在开仓位置的,是在50点位置附近
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-3-11 14:15 | 显示全部楼层
前面看错了。那个判断应该在开仓地方直接判断,不应该在后面的位置。

我重新给你调整下。

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

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-3-11 14:19 | 显示全部楼层
[PEL] 复制代码
variable:zs:=c,hl:=c;//声明全局变量zs、hl
ma5:=ma(c,5);
ma20:=ma(c,20);
atr:ma(h-l,20);//市场平均波动幅度
buycond:=cross(ma5,ma20);//平空开多条件
sellcond:=cross(ma20,ma5);//平多开空条件

h1:=hhv(h,enterbars+1);//注意 这里是用h统计,你也可以考虑用c  
if holding>0  and hl then begin
多止损:zs;
if l<zs and h1-avgenterprice>=50*mindiff then 多回撤止损1:sell(1,1,limitr,min(o,zs)-mindiff);
else if sellcond then sell(1,1,limitr,c);
end
l1:=llv(l,enterbars+1);//注意 这里是用l统计,你也可以考虑用c
if holding<0 then begin
空止损:zs;
if h>zs and avgenterprice-l1>=50*mindiff then 空回撤止损1:sellshort(1,1,limitr,max(o,zs)+mindiff);
else if buycond then sellshort(1,1,limitr,c);
end

if holding=0 and buycond then begin//多头开仓
buy(1,1,limitr,c);
zs:=c-2*atr;
hl:=c;//hl开仓后的最有利价位,刚买入时,最有利价位为开仓价
end

if holding=0 and sellcond then begin//空头开仓
buyshort(1,1,limitr,c);
zs:=c+2*atr;
hl:=c;
end

if holding>0 and enterbars>0 and h>hl  then begin//最高价抬升,止损位相应地抬升
hl:=h;
zs:=hl-2*atr;
end

if holding<0 and enterbars>0 and l<hl  then begin//最低价下降,止损位相应地下移
hl:=l;
zs:=l+2*atr;
end




效果上应该是差不多的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

32

主题

178

帖子

178

积分

等级: 免费版

注册:
2023-3-7
曾用名:
 楼主| 发表于 2024-3-11 16:05 | 显示全部楼层
移动线能否在盈利50点出才划线呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-3-11 16:12 | 显示全部楼层


一样的,加条件就行了。

多止损:if(h1-avgenterprice>=50*mindiff,zs,drawnull);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

32

主题

178

帖子

178

积分

等级: 免费版

注册:
2023-3-7
曾用名:
 楼主| 发表于 2024-3-12 11:18 | 显示全部楼层
老师,再问下,这个移动止损,平仓后它自动又开仓的,怎样让它只做一次,即一次开多一次移动止损,一次开空一次移动止损?
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-3-12 11:21 | 显示全部楼层
你的意思是,移动止损后,不在开多单。而是等待空单条件成立做空?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-1 07:34 , Processed in 0.103420 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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