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


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

   

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


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

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

帅哥哟,离线,有人找我吗?
FireScript
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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点止盈止损。在触发止盈止损的时候务必对全局变量进行处理。

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


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


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