金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 文书平

止损问题

[复制链接]

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-12-19 09:24 | 显示全部楼层
本帖最后由 技术009 于 2022-12-19 09:25 编辑

你多账户当然可以了,你一个开仓条件 你写一个策略,你每个策略运行在不同账户上自然没问题。每个平仓条件 每个策略自行维护,这自然是根本上解决了问题。但是多账户是要求软件账户是机构版的。


你这个思路目前不好做,尤其是你如果是不固定次数的开仓,加仓情况下。比如某个加仓条件 可能触发很多次,这种就没办法 针对每个加仓的条件去设置一个止损价。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2022-12-19 12:45 | 显示全部楼层
技术009 发表于 2022-12-19 09:24
你多账户当然可以了,你一个开仓条件 你写一个策略,你每个策略运行在不同账户上自然没问题。每个平仓条件  ...

同一个条件有持仓的情况下不再加仓,或者同一个条件持仓超过多少手以后不再以这个条件开仓。这个公式能写出来吗?
我目前的策略是55均线以下不开空
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-12-19 13:41 | 显示全部楼层
[PEL] 复制代码
VARIABLE:KP1:=0,KP2:=0,KP3:=0;



macd1:="macd.macd1";

//开多1,平多1
kd1:macd1>0 and ref(macd1,1)<0;
pd1:macd1<0 and ref(macd1,1)>0;

k:="KDJ.k";
d:="KDJ.d";

//开多2,平多2
kd2:k>d and ref(k<d,1);
pd2:k<d and ref(k>d,1);


ma5:=ma(c,5);
ma10:=ma(c,10);
//开多3,平多3
kd3:cross(ma5,ma10);
pd3:cross(ma10,ma5);



//平仓时候根据记录的开仓价进行判断
if (c-kp1)>=10*MINDIFF and kp1<>0 then 
begin 
平多1:sell(1,1,market);	
kp1:=0;//平仓重置全局变量
end 

if (c-kp2)>=10*MINDIFF and kp2<>0 then 
begin 
平多2:sell(1,1,market);	
kp2:=0;
end 


if (c-kp3)>=10*MINDIFF and kp3<>0 then 
begin 
平多3:sell(1,1,market);	
kp3:=0;
end 



//单个条件每次开仓时候记录一个开仓价,后续平仓 会根据全局变量值判断是否盈利10个点,然后进行平仓

if kd1 and KP1=0 then 
begin 
开多1:buy(1,1,market);
KP1:=ENTERPRICE;//给全局变量赋值
end 

if kd2 and KP2=0 then 
begin 
开多2:buy(1,1,market);
KP2:=ENTERPRICE;
end 

if kd3 and KP3=0 then 
begin 
开多3:buy(1,1,market);
KP3:=ENTERPRICE;
end 




你参考这个范例吧。这个范例里面 不同条件的开仓价,都执行10个盈利的平仓条件。
需要注意的是这里是一个开仓条件开仓一次的,平仓之前不会再开仓。核心就是定义和开仓对应的全局变量,三个条件(每个条件不重复开仓情况下)就设置三个全局变量。  每次开仓把开仓均价记录到全局变量值里去,每次平仓都必须重置对应全局变量,否则逻辑会紊乱。  如果你有一个全局的平仓条件,比如收盘全平,那么这时候就必须重置你所有的全局变量的值。


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

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2022-12-19 14:09 | 显示全部楼层
技术009 发表于 2022-12-19 13:41
[mw_shl_code=pel,true]VARIABLE:KP1:=0,KP2:=0,KP3:=0;

这里能否加一个在收盘前,如果盈利大于多少减仓(手数),如果小于多少全平
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-12-19 14:19 | 显示全部楼层
你先理解了范例。再一步步处理。另外 论坛上的指导也是有限度的。不可能所有代码都替客户完成的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2022-12-19 15:09 | 显示全部楼层
技术009 发表于 2022-12-19 14:19
你先理解了范例。再一步步处理。另外 论坛上的指导也是有限度的。不可能所有代码都替客户完成的。

范例了解了,条件我自己能解决,单个开平仓这些也基本能搞定,就是开仓 加减仓,止盈止损融合在一起怕搞语句不清楚
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2022-12-19 15:26 | 显示全部楼层
技术009 发表于 2022-12-19 14:19
你先理解了范例。再一步步处理。另外 论坛上的指导也是有限度的。不可能所有代码都替客户完成的。

这个需要先把策略完整了才能进行实盘操作
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2022-12-23 20:31 | 显示全部楼层
老师帮忙看下
截图202212232031267231.png
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2022-12-23 20:34 | 显示全部楼层
我在开空这里有开空  上面有挂单现在不会成交,所以只会在开空处开空持有空单,这时候我需要出现止损单,止损不是以开仓价去止损,需要以收盘价大于开仓前10日内的最高价去止损,这个语句怎么写?你前面的止损都是以开仓价为基础去止损 达不到我的目的或者是我没理解
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2022-12-23 20:44 | 显示全部楼层
zs:=ref(HHV(H,10),1)+5;
BUYSHORT(k8 and holding=0 ,2,LIMITR,ref(HHV(H,10),1)*MINDIFF);//以前10周期内最高价减5个点开空   
BUYSHORT(k8 and holding=0,2,LIMITR,o);//以收盘价开空
//if holding<0 then Sellshort(c>zs+5,1,limitr,c);

//止损::
if holding<0 and c>=zs then sellshort(1,1,limitr,o);
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 12:21 , Processed in 0.184773 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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