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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]怎样控制这个里面加仓的时候重复开仓?

   

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


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

主题:[求助]怎样控制这个里面加仓的时候重复开仓?

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


加好友 发短信
等级:论坛游侠 帖子:109 积分:0 威望:0 精华:0 注册:2020/6/21 10:56:49
[求助]怎样控制这个里面加仓的时候重复开仓?  发帖心情 Post By:2020/9/8 13:10:18    Post IP:36.5.109.40[只看该作者]

设计的思路是,MA3上穿MA7时,开多,如果连续2天收盘价大于MA17,加多。
第一次平多是MA7下穿MA3时,平一半多;连续2天收盘价小于MA17时,多全平;
反过来一样,但是实际运行中发现,会不停的加仓开多开空,请问这是哪里写错了吗?请指教,谢谢

VARIABLE:mark:=0;
ss:2;//
MA3:=MA(CLOSE,3);    //
MA7:=MA(CLOSE,7);   //
MA17:=MA(CLOSE,17);

KD1:=CROSS(MA3,MA7);
KD2:=EVERY(C>MA17,2);

KK1:=CROSS(MA7,MA3);
KK2:=EVERY(C<MA17,2);

开多1:KD1 and mark>=0;
开空1:KK1 and mark<=0;

加多:KD2;
加空:KK2;

平多1:KK1;
平空1:KD1;

全平多:KK2;
全平空:KD2;

//
if 开多1  then  begin
buy(holding=0,ss,market);
end

if 开空1 then 
begin
buyshort(holding=0,ss,market);
end

if 加多  then  begin
buy(holding>0,ss,market);
end

if 加空 then 
begin
buyshort(holding<0,ss,market);
end
 
if 平多1  and holding>0 then 
begin
sell(holding>0,holding/2,market);
mark:=-1;
end

if 平空1 and holding<0 then 
begin
sellshort(holding<0,holding/2,market);
mark:=1;
end

if 全平多  and holding>0 then 
begin
sell(holding>0,holding,market);
mark:=-1;
end

if 全平空 and holding<0 then 
begin
sellshort(holding<0,holding,market);
mark:=1;
end

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


加好友 发短信
等级:论坛游侠 帖子:109 积分:0 威望:0 精华:0 注册:2020/6/21 10:56:49
  发帖心情 Post By:2020/9/8 13:12:33    Post IP:36.5.109.40[只看该作者]

应该如何控制,加仓只加一次?

第一次平多或平空只平一半,后面的全平我这样写的可对?

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


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

 “如果连续2天收盘价大于MA17”  这个条件
基本上只要是个上涨趋势,就会触发很多次, 反正空头的条件也是一样。




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


加好友 发短信
等级:论坛游侠 帖子:109 积分:0 威望:0 精华:0 注册:2020/6/21 10:56:49
  发帖心情 Post By:2020/9/8 13:22:46    Post IP:36.5.109.40[只看该作者]

是的,我的意思是,控制只加一次该如何用语句来控制呢?请您指点,谢谢

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/9/8 13:35:49    Post IP:58.246.57.26[只看该作者]

 VARIABLE:mark:=0,mark1:=0,mark2:=0;
ss:2;//
MA3:=MA(CLOSE,3);    //
MA7:=MA(CLOSE,7);   //
MA17:=MA(CLOSE,17);

KD1:=CROSS(MA3,MA7);
KD2:=EVERY(C>MA17,2);

KK1:=CROSS(MA7,MA3);
KK2:=EVERY(C<MA17,2);

开多1:KD1 and mark>=0;
开空1:KK1 and mark<=0;

加多:KD2;
加空:KK2;

平多1:KK1;
平空1:KD1;

全平多:KK2;
全平空:KD2;

if 加多 and mark1=0  then  begin
加多仓:buy(holding>0,ss,market);
mark1:=mark1+1;
end

if 加空 and mark2=0 then
begin
加空仓:buyshort(holding<0,ss,market);
mark2:=mark2+1;
end



if 开多1  then  begin
buy(holding=0,ss,market);
mark1:=0;
end

if 开空1 then
begin
buyshort(holding=0,ss,market);
mark2:=0;
end


 
if 平多1  and holding>0 then
begin
sell(holding>0,holding/2,market);
mark:=-1;
end

if 平空1 and holding<0 then
begin
sellshort(holding<0,holding/2,market);
mark:=1;
end

if 全平多  and holding>0 then
begin
sell(holding>0,holding,market);
mark:=-1;
end

if 全平空 and holding<0 then
begin
sellshort(holding<0,holding,market);
mark:=1;
end


用全局变量控制下。另外我把加仓代码置开仓前面了。


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


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

还有就是这个加仓,我只限制在开仓之后的加仓。如果中间减仓后又满足 加仓的条件也是忽略掉的。


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


加好友 发短信
等级:论坛游侠 帖子:109 积分:0 威望:0 精华:0 注册:2020/6/21 10:56:49
  发帖心情 Post By:2020/9/8 15:29:14    Post IP:36.5.109.40[只看该作者]

以下是引用FireScript在2020/9/8 13:37:42的发言:
还有就是这个加仓,我只限制在开仓之后的加仓。如果中间减仓后又满足 加仓的条件也是忽略掉的。
谢谢谢谢,我来测试下


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


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

 好的。


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


加好友 发短信
等级:论坛游侠 帖子:109 积分:0 威望:0 精华:0 注册:2020/6/21 10:56:49
  发帖心情 Post By:2020/9/8 16:13:27    Post IP:36.5.109.40[只看该作者]

请问下,为什么要把加仓的代码放到开仓前面呢?这样会不会有些就不开了?

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


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

也可以放在后面。只是这样 会有加仓 开仓在一个K的情况。就是这么个区分了。


命数如织,当如磐石。
 回到顶部
总数 27 1 2 3 下一页