金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1729|回复: 4

请老师帮我添写一个移动止损的策略!!

[复制链接]

26

主题

93

帖子

93

积分

等级: 免费版

注册:
2022-11-17
曾用名:
发表于 2024-3-27 22:16 | 显示全部楼层 |阅读模式
老师好,我想在我原有的策略基础上添加一个移动止损的策略。只有在建仓后利润达到N个点或N%的利润后,自动触发移动止损。止损设置为总利润的百分之几(比如回撤总利润的20%、25%,保证80%、75%的利润)如果按利润百分比不好实现就设置为回撤多少个点)。辛苦老师,感谢!感谢!

以下是我的策略代码,如果代码有错误请老师一并指正。谢谢!
input:ss(1,1,100,1)N1(5,1,100,1),N2(10,1,200,1);
//准备需要的中间变量
MA1:MA(CLOSE,N1);
MA2:MA(CLOSE,N2);
week_o:="$OPEN#week";
day_o:="$OPEN#DAY";
//多头建仓条件 ;
Long:=close>week_o AND  close>day_o  AND  MA1>MA2 ;
if Long then
begin
sellshort(holding<0,holding,thisclose);
buy(holding=0,SS,thisclose);
end
//多头平仓条件         
//符合以下条件时,平全部多单;
LongX:= MA1<MA2 AND Holding>0;
if LongX then
begin
sell(SS,0,Limitr,c);
END
//建立空头建仓条件
//符合以下条件时,如果手里有多单,平掉全部多单;最新价格下ss手空单;
Short:=close<week_o AND  close<day_o  AND  MA1<MA2 ;
if Short then
begin
SELL(holding>0, holding,thisclose);
BUYSHORT(holding=0,ss,thisclose) ;
end
//空头平仓条件
//符合以下条件时,平全部空单;
ShortX:=MA1>MA2  AND Holding<0;
if ShortX then
begin
SELLSHORT(ss,0,Limitr,c);
END         


回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-3-28 09:02 | 显示全部楼层
cond5:hhv(OPENPROFITPER,enterbars)>30/100;
//移动止损部分************************
//求出持仓以来的最高价或最低价,通过与当前价做比较,判断资金回落的幅度
DTYDZS:=(HHV(H,ENTERBARS)-CLOSE)/AVGENTERPRICE>=0.1;
KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AVGENTERPRICE>=0.1;
SELL(DTYDZS and cond5,0,MARKET);
SELLSHORT(KTYDZS and cond5,0,MARKET);
//*************************************



可以自行看下,cond5就是开仓以来最大的浮盈百分比,然后下面就是当前价格和最高价格之间比也就是回落幅度
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

26

主题

93

帖子

93

积分

等级: 免费版

注册:
2022-11-17
曾用名:
 楼主| 发表于 2024-3-28 09:47 | 显示全部楼层
如果我想利润达到20%后自动设移动止损,是不是这样:cond5:hhv(OPENPROFITPER,enterbars)>20/100;

另外移动止损价格的设置,如果要利润达到20%后,价格回落5%也就是利润重新回到15%的时候立即止损,那参数要怎么设呢?
是要改下面两句吗?我完全是新手,请老师帮我直接改一下,我复制过来,放在原来代码下面直接能用那种。感谢,感谢

补充内容 (2024-3-28 09:48):
SELL(DTYDZS and cond5,5,MARKET);
SELLSHORT(KTYDZS and cond5,5,MARKET);

是这样吗
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-3-28 09:53 | 显示全部楼层
DTYDZS:=(HHV(H,ENTERBARS)-CLOSE)/AVGENTERPRICE>=0.05;
KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AVGENTERPRICE>=0.05;

这个就是最高价减去现在价格的一个回落的幅度,改这个参数就行了

重要的是自己要理解,最高和现在价格的比值,不就是回落吗

cond5是开盘以来最大浮盈的幅度,就是一个最大盈利
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

26

主题

93

帖子

93

积分

等级: 免费版

注册:
2022-11-17
曾用名:
 楼主| 发表于 2024-3-28 09:59 | 显示全部楼层
好的,理解了。谢谢老师。

cond5:hhv(OPENPROFITPER,enterbars)>20/100;
//移动止损部分************************
//求出持仓以来的最高价或最低价,通过与当前价做比较,判断资金回落的幅度
DTYDZS:=(HHV(H,ENTERBARS)-CLOSE)/AVGENTERPRICE>=0.05;
KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AVGENTERPRICE>=0.05;
SELL(DTYDZS and cond5,0,MARKET);
SELLSHORT(KTYDZS and cond5,0,MARKET);
//*************************************
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-31 03:48 , Processed in 0.106560 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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