欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]止盈或止损后不再开同方向的单

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3418人关注过本帖树形打印复制链接

主题:[求助]止盈或止损后不再开同方向的单

帅哥哟,离线,有人找我吗?
天天涨停
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:117 积分:0 威望:0 精华:0 注册:2019/1/18 14:44:34
[求助]止盈或止损后不再开同方向的单  发帖心情 Post By:2019/3/27 11:49:29    Post IP:106.87.44.8[只看该作者]

1、多单止盈或止损后,往往会达到多单条件,又开了多单,我想多单止盈或止损后,不再开多单,等空单出信号后再开仓。
2、空单反之。
这个用什么来控制,请老师帮我写一下,谢谢。

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/3/27 14:25:44    Post IP:180.169.30.6[只看该作者]

 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=169010

这里刚好有个类似的例子,你可以看下。思路就是用全局变量标记下就行。

我稍迟点会提供个范例。
[此贴子已经被作者于2019/3/27 14:26:45编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/3/27 14:37:48    Post IP:180.169.30.6[只看该作者]

 VARIABLE:lt1:=0,lt2:=0;
ma5:ma(c,5);
ma10:ma(c,10);
ma20:ma(c,20);

cd1:ma5>ma10 and ma10>ma20;//开多条件
cd2:ma5<ma10 and ma10<ma20;//开空条件

if cd1 and lt1=0  then buy(holding=0,1,market);
if abs(c-ENTERPRICE)>=100*MINDIFF and holding>0 then //多头100点止盈止损
begin
lt1:=1;
lt2:=0;
sell(holding>0,holding,market);
end


if cd2 and lt2=0 then buyshort(holding=0,1,market);

if abs(ENTERPRICE-c)>=100*MINDIFF and holding<0 then //空头100止盈止损
begin
lt2:=1;//平空之后限制下次重复开同方向仓位
lt1:=0;//平空之后解除对开多仓的限制

sellshort(holding<0,holding,market);
end

一个简单范例,止盈止损均是100点止盈止损。在触发止盈止损的时候务必对全局变量进行处理。

参考这个代码先理解下,然后再处理你自己的代码。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
天天涨停
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:117 积分:0 威望:0 精华:0 注册:2019/1/18 14:44:34
  发帖心情 Post By:2019/3/27 15:11:27    Post IP:106.87.44.8[只看该作者]

谢谢,老师


 回到顶部
帅哥哟,离线,有人找我吗?
天天涨停
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:117 积分:0 威望:0 精华:0 注册:2019/1/18 14:44:34
  发帖心情 Post By:2019/4/3 10:15:41    Post IP:106.87.47.80[只看该作者]

老师,为什么我这样写还是要开同一方向的仓。

 

input:N(5,1,500,5),N1(10,1,500,5),N2(20,1,500,5),N3(30,1,500,5),;
A1:=MA(CLOSE,N);
A2:=MA(CLOSE,N1);
A3:=MA(CLOSE,N2);
A4:=MA(CLOSE,N3);
BB:=CLOSE<A1 AND A1<A2 AND A2<A3 AND A3<A4 AND CLOSE<OPEN;

AA:=OPEN>A1 AND A1>A2 AND A2>A3 AND A3>A4 AND CLOSE>OPEN;

VARIABLE:lt1:=0,lt2:=0;
if c>A1 then
begin
SELLSHORT(holding<0,1,marketr);//平空
lt2:=1;//平空之后限制下次重复开同方向仓位
lt1:=0;//平空之后解除对开多仓的限制
end

if AA  and lt1=0 then
begin
buy(holding=0,1,marketr)IGNORECHECKPRICE;//开多
end

if c<A1 then begin
SELL(holding>0,1,marketr)IGNORECHECKPRICE;//平多
lt1:=1;//平多之后限制下次重复开同方向仓位
lt2:=0;//平多之后解除对开空仓的限制
end

if BB and lt2=0 then
begin
BUYSHORT(holding=0,1,marketr)IGNORECHECKPRICE;//开空
end

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
天天涨停
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:117 积分:0 威望:0 精华:0 注册:2019/1/18 14:44:34
  发帖心情 Post By:2019/4/3 16:19:01    Post IP:106.87.47.80[只看该作者]

有人吗

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/4/3 17:21:58    Post IP:180.169.30.6[只看该作者]

 我本地先看下你的代码。
[此贴子已经被作者于2019/4/3 17:22:04编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
天天涨停
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:117 积分:0 威望:0 精华:0 注册:2019/1/18 14:44:34
  发帖心情 Post By:2019/4/4 10:21:42    Post IP:106.87.46.206[只看该作者]

谢谢老师,辛苦了。

 回到顶部
帅哥哟,离线,有人找我吗?
天天涨停
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:117 积分:0 威望:0 精华:0 注册:2019/1/18 14:44:34
  发帖心情 Post By:2019/4/4 12:04:31    Post IP:106.87.46.206[只看该作者]

老师,查出原因了吗

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/4/4 14:43:34    Post IP:180.169.30.6[只看该作者]

 需要注意一个细节。

VARIABLE:lt1:=0,lt2:=0;

if c<A1 and holding>0 then
begin
SELL(holding>0,1,marketr),IGNORECHECKPRICE;//平多
lt1:=1;//平多之后限制下次重复开同方向仓位
lt2:=0;//平多之后解除对开空仓的限制
end

if AA  and lt1=0 and holding=0 then
begin
buy(holding=0,1,marketr),IGNORECHECKPRICE;//开多
end

if c>A1 and holding<0 then
begin
SELLSHORT(holding<0,1,marketr);//平空
lt2:=1;//平空之后限制下次重复开同方向仓位
lt1:=0;//平空之后解除对开多仓的限制
end

if BB and lt2=0 and holding=0 then
begin
BUYSHORT(holding=0,1,marketr),IGNORECHECKPRICE;//开空
end

红色标注的条件必须加上去,保证全局变量赋值时候实际也是出信号的位置。


命数如织,当如磐石。
 回到顶部