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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 上一信号是开多信号这么表达?

   

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


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

主题:上一信号是开多信号这么表达?

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


加好友 发短信
等级:新手上路 帖子:15 积分:0 威望:0 精华:0 注册:2017/3/24 15:26:45
上一信号是开多信号这么表达?  发帖心情 Post By:2018/6/3 17:46:25    Post IP:112.28.173.68[只看该作者]

判断上一指令是否是开多,怎么表达?
TYPE(1)=1:上一指令信号是开多
TYPE(1)=2:上一指令信号是平多
用上面两个表达好像有问题,系统不往下接着计算了

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2018/6/3 21:54:41    Post IP:116.237.19.23[只看该作者]

什么叫做系统不往下算了?提供你完成的测试代码。
这个函数没有问题,TYPE(1)返回的是上次最近一次信号的标志位的值。


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
aliwealth
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:15 积分:0 威望:0 精华:0 注册:2017/3/24 15:26:45
  发帖心情 Post By:2018/6/4 0:15:52    Post IP:112.28.173.68[只看该作者]

TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//真实波幅
ATR:=MA(TR,26); //求26个周期内真实波幅的简单移动平均
TC:=1;
MTC:=4;
HH:=HV(H,20);
LL:=LV(L,20);
CROSS(C,HH)&&ISLASTBK=0&&ISLASTSK=0&&BARPOS>=26,BK(TC);//最新价超过20周期的最高值,首次买入开仓,手数为TC手
CROSS(LL,C)&&ISLASTBK=0&&ISLASTSK=0,SK(TC); //最新价跌破20周期的最低值,首次卖出开仓,手数为TC手
C>=BKPRICE+0.5*ATR&&BKVOL<MTC&&ISLASTBK,BK(TC);//价格在上次开仓的基础上上涨0.5倍ATR,在手数不超过4倍TC的时候,买入加仓TC手
C<=SKPRICE-0.5*ATR&&SKVOL<MTC&&ISLASTSK,SK(TC);//价格在上次开仓的基础上下跌0.5倍ATR,在手数不超过4倍TC的时候,卖出加仓TC手
C<=(BKPRICE-2*ATR)&&BKVOL>0,SP(BKVOL);//最新价小于开仓价减去2倍的ATR,止损平仓
C>=(SKPRICE+2*ATR)&&SKVOL>0,BP(SKVOL); //最新价大于开仓价加上2倍的ATR,止损平仓
CROSSUP(H,HV(H,10))&&SKVOL>0,BP(SKVOL);//最高价上穿10周期最高价,平仓
CROSSDOWN(L,LV(L,10))&&BKVOL>0,SP(BKVOL); //最低价下穿10周期的最低价,平仓
TRADE_AGAIN(10);

以上是文华的海龟,下面我改成金字塔

ATR:=MA(TR,26); //求26个周期内真实波幅的简单移动平均
TC:=1;
MTC:=4;
HH:=REF(HHV(H,20),1);
LL:=REF(LLV(L,20),1);
IF TYPE(1)=0 AND TYPE(3)=0 AND BARPOS>=26 THEN BEGIN
BUY(C>HH,TC,THISCLOSE);//最新价超过20周期的最高值,首次买入开仓,手数为TC手
BUYSHORT(C<LL,TC,THISCLOSE); //最新价跌破20周期的最低值,首次卖出开仓,手数为TC手
END
IF TYPE(1)=1 AND HOLDING<MTC THEN BEGIN
BUY(C>=ENTERPRICE+0.5*ATR,TC,THISCLOSE);//价格在上次开仓的基础上上涨0.5倍ATR,在手数不超过4倍TC的时候,买入加仓TC手
END
IF TYPE(1)=3 AND ABS(HOLDING)<MTC THEN BEGIN
BUYSHORT(C<=ENTERPRICE-0.5*ATR,TC,THISCLOSE);//价格在上次开仓的基础上下跌0.5倍ATR,在手数不超过4倍TC的时候,卖出加仓TC手
END
IF HOLDING>0 THEN BEGIN
SELL(C<=ENTERPRICE-2*ATR,0,THISCLOSE);//最新价小于开仓价减去2倍的ATR,止损平仓
END
IF HOLDING<0 THEN BEGIN
SELLSHORT(C>=ENTERPRICE+2*ATR,0,THISCLOSE); //最新价大于开仓价加上2倍的ATR,止损平仓
END



上面这个完全跑不通,是不是说明TYPE(1)=1不是(ISLASTBK 上一个交易信号是BK则返回1(Yes),否则返回0(No))
TYPE(1)=3也不是(ISLASTSK 上一个交易信号是SK则返回1(Yes),否则返回0(No)))

 回到顶部