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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教下语句

   

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


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

主题:请教下语句

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


加好友 发短信
等级:论坛游侠 帖子:219 积分:0 威望:0 精华:0 注册:2016/1/2 17:57:34
请教下语句  发帖心情 Post By:2021/5/18 9:46:11    Post IP:1.193.79.138[只看该作者]

1,空单。空单下单的那根k,定义一下下单后前N日内最高点(high或者c)价格,涨过这个价位空单止损

2,多单。多单下单的那根k,定义一下下单后前N日内最低点(high或者c)价格,跌破这个价位多单止损


还有个疑问,如果连续多次开空单,程序是按一次做空计算的,那么会不会止损价会不停变化?我只想要第一笔空单的止损价

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


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

 你是会有加仓的动作吗?如果是正常的平仓后再次开仓 那没什么特殊好处理,但是如果是加仓 并且还是按照开仓位置取止损价 那估计得全局变量了。


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


加好友 发短信
等级:论坛游侠 帖子:219 积分:0 威望:0 精华:0 注册:2016/1/2 17:57:34
  发帖心情 Post By:2021/5/18 10:22:25    Post IP:1.193.79.138[只看该作者]

先不考虑全局变量了,就简单的取止损价止损吧

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


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

 不是啊。用不用取决于你是不是有加仓操作,你要是加仓。你就只能用全局变量去纪录。


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


加好友 发短信
等级:论坛游侠 帖子:219 积分:0 威望:0 精华:0 注册:2016/1/2 17:57:34
  发帖心情 Post By:2021/5/18 10:45:10    Post IP:1.193.79.138[只看该作者]

可能会有加仓,但是根据程序的逻辑,在高点再次开空仓,可能前一单就已经止损了,如果没有达到止损价又开了空单,说明价格变化不大,用之前的止损价或者新开仓k重新获取止损价的价格应该相差不多,所以我觉得是不用考虑全局了,不知道是否正确

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


加好友 发短信
等级:论坛游侠 帖子:219 积分:0 威望:0 精华:0 注册:2016/1/2 17:57:34
  发帖心情 Post By:2021/5/18 10:48:09    Post IP:1.193.79.138[只看该作者]

对了,再加一条把,如果上次仓,不管的空单还是多单,只要上一次开仓最后止损了,本次开仓加一手

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


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

 那这样做:

INPUT:N(10,1,100,1);

//这个P1,P2取值放到开仓语句后面
P1:REF(HHV(H,N),ENTERBARS+2),NODRAW;//开仓K前N周期最高价,不包含开仓K。
P2:REF(LLV(L,N),ENTERBARS+2),NODRAW;
if c<p2 then sell(1,holding,market);
if c>p1 then sellshort(1,holding,market);

你如果没有加仓,这样是ok的。用ref+ENTERBARS 直接获取最近一次开仓的位置,然后进行取值。


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


加好友 发短信
等级:论坛游侠 帖子:219 积分:0 威望:0 精华:0 注册:2016/1/2 17:57:34
  发帖心情 Post By:2021/5/18 11:36:12    Post IP:1.193.79.138[只看该作者]

1,p1 取价格如果不包含开仓k,那假如开空k比前一根k价格高,以前一根算周期最高价,那么开仓这根k已经涨过止损价了,就造成了又开又平?

2,请老师把6楼的问题帮忙解答下吧,谢谢~

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


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

 1.这样做:

INPUT:N(10,1,100,1);

//这个P1,P2取值放到开仓语句前面
P1:REF(HHV(H,N),ENTERBARS+1),NODRAW;//开仓K前N周期最高价,不包含开仓K。
P2:REF(LLV(L,N),ENTERBARS+1),NODRAW;
if c<p2 then sell(1,holding,market);
if c>p1 then sellshort(1,holding,market);

//开仓语句

这样就行了。依旧不包括开仓K,但是不会导致开仓了又平仓了。是否包含开仓K,你就调整ENTERBARS+1就行了

2.这个得全局变量了。
你稍等下,我前几天刚写过一个。我找出来给你。


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


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

 VARIABLE:ss:=1;

input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);
DIFF :EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :EMA(DIFF,M);
MACD1 :2*(DIFF-DEA), COLORSTICK;
macdjc:cross(diff,dea),NODRAW;//macd金叉
macdsc:cross(dea,diff),NODRAW;


if macdjc and holding=0 then
begin
buy(1,ss,market);    
end

if macdsc and holding>0 then
begin
sell(1,holding,market);    
if NUMPROFIT(1)<0 and ss<8 then ss:=ss*2;
if NUMPROFIT(1)>0 then ss:=1;

end

原贴在这:
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=188329

基本差不多。就是在平仓时候 判断下盈亏情况,如果亏损了,那么全局变量(手数)增加。


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