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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请问做多止损后如行情再次上涨,如何编写语句在上一次开多的价格入场?

   

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


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

主题:请问做多止损后如行情再次上涨,如何编写语句在上一次开多的价格入场?

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


加好友 发短信
等级:新手上路 帖子:5 积分:102 威望:0 精华:0 注册:2010/8/24 11:08:59
请问做多止损后如行情再次上涨,如何编写语句在上一次开多的价格入场?  发帖心情 Post By:2010/8/24 11:35:53    Post IP:124.160.85.78[显示全部帖子]

如下面的例子,假设buy开多后如遇sell止损,在没有sell平多之前如何在价格再次涨上第一次开多的价格时入场呢?应该如何写语句?这里假设的是单一策略做一个品种,第一次的开多价格是AVGENTERPRICE,也就是说止损后价格再次回到AVGENTERPRICE按这个价格重新入场,并且设置相同的止损,直到平多的信号完成。

如: 

BK:=CROSS(H, hhv(ref(h,1),20));

SK:=CROSS(llv(ref(l,1), 20),L);

Price:=AVGENTERPRICE;//持仓价位

 

SELLSHORT(BK and 持仓<0,持仓,market);

SELLSHORT(持仓<0,持仓,Stopr,Price+NS);//NS为止损点数

BUY(BK and NOT(TYPE(1)=1),30%,market);


 

SELL(SK and 持仓>0,持仓,market);

SELL(持仓>0,持仓,Stopr,Price-NS);//NS为止损点数

BUYSHORT(SK and NOT(TYPE(1)=3),30%,market);


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


加好友 发短信
等级:新手上路 帖子:5 积分:102 威望:0 精华:0 注册:2010/8/24 11:08:59
  发帖心情 Post By:2010/8/24 16:24:29    Post IP:124.160.85.78[显示全部帖子]

按3楼老师方法弄了半天,总感觉不对劲,请老师看看这样是不是正确

 

BK:=CROSS(H, hhv(ref(h,1),20));
SK:=CROSS(llv(ref(l,1), 20),L);

Price:=AVGENTERPRICE;//持仓价位

 

SELLSHORT(BK and 持仓<0,持仓,market);
BUY(BK and NOT(TYPE(1)=1),30%,market);

IF low<price-NS AND 持仓>0 then
begin
price:=AVGENTERPRICE;
SELL(1,持仓,Stopr,Price-NS);//NS为止损点数
BUY(1,30%,STOPR,price);
END

 

SELL(SK and 持仓>0,持仓,market);

BUYSHORT(SK and NOT(TYPE(1)=3),30%,market);

 

IF high>price+NS AND 持仓<0 then
begin
price:=AVGENTERPRICE;
SELLSHORT(1,持仓,Stopr,Price+NS);//NS为止损点数
BUYSHORT(1,30%,STOPR,PRICE);
END

[此贴子已经被作者于2010-8-24 16:24:59编辑过]

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


加好友 发短信
等级:新手上路 帖子:5 积分:102 威望:0 精华:0 注册:2010/8/24 11:08:59
  发帖心情 Post By:2010/8/24 23:16:17    Post IP:124.160.85.81[显示全部帖子]

老师,在图表上测试了,似乎没有达到预期的设定效果,图上有很多的灰色箭头和灰色三角形,不知是什么?

问题:比如做多止损,当止损后由于持仓变为0,未等价格再次上穿上次开仓价,就已经满足持仓=0的开空条件了。见下面黄色背景的两行。见图。 做空止损类似。

BK:=CROSS(H, hhv(ref(h,1),20));
SK:=CROSS(llv(ref(l,1), 20),L);

 

if BK and time>090100 and time<145500 then
 begin
 SELLSHORT(holding<0,0,limitr,h);    //以本周期的最高价挂单--平仓
 BUY(NOT(TYPE(1)=1) and holding=0,30%,limitr,h); //以本周期的最高价挂单--开仓
 end

 

price1:=AVGENTERPRICE;{这里可以改成ENTERPRICE?}
SELL(holding>0,0,Stopr,Price1-NS);//NS为止损点数

if holding=0 then BUY(1,30%,STOPR,price1);


if SK and time>090100 and time<145500 then
 begin
 SELL(holding>0,0,limitr,l);  //以本周期的最低价挂单
 BUYSHORT(NOT(TYPE(1)=3) and holding=0,30%,limitr,l);{老师笔误,这里我补上了BUYSHORT}
 end

 

price2:=AVGENTERPRICE;{这里可以改成ENTERPRICE?}
SELLSHORT(holding<0,0,Stopr,Price2+NS);//NS为止损点数
if holding=0 then BUYSHORT(1,30%,STOPR,PRICE2);

[此贴子已经被作者于2010-8-24 23:18:54编辑过]

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


加好友 发短信
等级:新手上路 帖子:5 积分:102 威望:0 精华:0 注册:2010/8/24 11:08:59
  发帖心情 Post By:2010/8/25 10:08:47    Post IP:124.160.85.80[显示全部帖子]

老师,我只是想学习这么一个编程模板,未达到预期效果不是指盈利方面,而是尚没有完全实现我想实现的思路,

比如看上面8楼的黄色背景条二条语句是连贯的,举案例假设橡胶20000开空前一波下跌是盈利单,此时price2赋值为20000,19500平空翻多,此时price1赋值为19500,止损假设设在19400,如果多单19400止损,holding变为0,则会触发在19400的开空操作(此时if holding=0 then BUYSHORT(1,30%,STOPR,PRICE2);生效,因为19400<20000)。也就是上图显示的多单止损同时会开空单。反过来当前一波多头盈利后开空单被止损的话,也会触发新多入场。

我的想法是:

做多入场,止损后当价格再次上穿做多入场价继续做多(止损不反手),再止损再次上穿做多入场价继续做多,以此类推,直到平多出场。

做空入场,止损后当价格再次下穿做空入场价继续做空(止损不反手),再止损再次下穿做空入场价继续做空,以此类推,直到平空出场。

 

 


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


加好友 发短信
等级:新手上路 帖子:5 积分:102 威望:0 精华:0 注册:2010/8/24 11:08:59
  发帖心情 Post By:2010/8/27 13:31:35    Post IP:124.160.85.87[显示全部帖子]

老师 当几个交易系统(比如一个框架里设定两个以上图表做同一个品种)运用在一个品种上,如何定义获得后面那次的开仓入场价呢?用enterprice是否可以获取各自系统的入场价?

比如橡胶A系统图表做多开仓价20000、B系统图表做多开仓价20500,这个时候B系统里AVGENTERPRICE返回是20250吧?那么在B系统里用enterprice函数是否返回的是20500的开仓价呢?

 


 回到顶部