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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教图表策略改为后台

   

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


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

主题:请教图表策略改为后台

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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/8/2 11:25:38
请教图表策略改为后台  发帖心情 Post By:2018/5/9 11:37:38    Post IP:222.88.106.72[只看该作者]

HH1:=IFELSE(H<REF(H,1)&&REF(H,1)<REF(H,2),REF(H,2),0);
LL1:=IFELSE(L>REF(L,1)&&REF(L,1)>REF(L,2),REF(L,2),0);
HH2:=VALUEWHEN(HH1>0,HH1);
LL2:=VALUEWHEN(LL1>0,LL1);
K1:=IFELSE(CLOSE>HH2,-3,IFELSE(CLOSE<LL2,1,0));
K2:=VALUEWHEN(K1<>0,K1);


手数:=4;
//交易条件
VARIABLE:n1=0,n2=0,n3=0,n4=0 ;


开多条件:=CROSS(-2,K2);
平多条件:CROSS(K2,0);
开空条件:=CROSS(K2,0);
平空条件:=CROSS(-2,K2);


//交易系统
平空:SELLSHORT(平空条件,0,MARKET);
平多:SELL(平多条件,0,MARKET);  


if 开多条件 then begin              
BUY(1,手数,MARKET);
n1:=0;
n2:=0;
end
if 开空条件 then begin 
BUYSHORT(1,手数,MARKET);
n3:=0;
n4:=0;
end
//止损止盈,实时出场
多头止损:c<ref(L,ENTERBARS);
sell(多头止损 and holding>0 and ENTERBARS>0 ,holding,market);

空头止损:c>ref(h,ENTERBARS);
sellshort(空头止损 and holding<0 and ENTERBARS>0 ,holding,market);

//多头
if H-ENTERPRICE>=3 AND enterbars>0 and HOLDING>0 and n1=0 then begin
止盈1:SELL(1,1,marketr);//盈利3个点止盈1手
n1:=1;
end
if H-ENTERPRICE>=5 AND  enterbars>0 and  HOLDING>0 and n2=0 then begin
止盈2:SELL(1,1,marketr);//盈利5个点止盈1手
n2:=1;
end
                                                                                                                                                            
//空头
if ENTERPRICE-L>=3 AND  enterbars>0 and HOLDING<0 and n3=0 then begin
止盈3:SELLSHORT(1,1,marketr);//盈利3个点止盈
n3:=1;
end
if ENTERPRICE-L>=5 AND  enterbars>0 and  HOLDING<0 and n4=0 then begin
止盈4:SELLSHORT(1,1,marketr);//盈利5个点止盈
n4:=1;
end
另再加入
移动止盈
             盈利大于5小于10个点,从最大盈利点回撤0.61,止盈;

盈利大于10小于20个点,从最大盈利点回撤0.5,止盈;

盈利大于20点,从最大盈利点回撤0.38,止盈。和收盘前不论盈利亏损全平仓


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


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

 图表转后台必须注意的是 图表后台机制是不一样的。能帮你把函数之类的处理掉,但是稍微复杂的策略建议从策略思路出发完整的编写后台策略,而不是直接修改图表代码。

HH1:=IFELSE(H<REF(H,1)&&REF(H,1)<REF(H,2),REF(H,2),0);
LL1:=IFELSE(L>REF(L,1)&&REF(L,1)>REF(L,2),REF(L,2),0);
HH2:=VALUEWHEN(HH1>0,HH1);
LL2:=VALUEWHEN(LL1>0,LL1);
K1:=IFELSE(CLOSE>HH2,-3,IFELSE(CLOSE<LL2,1,0));
K2:=VALUEWHEN(K1<>0,K1);

手数:=4;
//交易条件
GLOBALVARIABLE:n1=0,n2=0,n3=0,n4=0;
开多条件:=CROSS(-2,K2);
平多条件:=CROSS(K2,0);
开空条件:=CROSS(K2,0);
平空条件:=CROSS(-2,K2);

//交易系统
平空:TSELLSHORT(平空条件,TSELLHOLDINGEX('','',1),MKT);
平多:TSELL(平多条件,TBUYHOLDINGEX('','',1),MKT); 

if 开多条件 then begin             
TBUY(1,手数,MKT);
n1:=0;
n2:=0;
end

if 开空条件 then begin
TBUYSHORT(1,手数,MKT);
n3:=0;
n4:=0;
end
//止损止盈,实时出场
多头止损:c<ref(L,TENTERBARS);
TSELL(多头止损 and TBUYHOLDINGEX('','',1)>0 and TENTERBARS>0 ,TBUYHOLDINGEX('','',1),MKT);

空头止损:c>ref(h,TENTERBARS);
Tsellshort(空头止损 and TSELLHOLDINGEX('','',1)<0 and TENTERBARS>0 ,TSELLHOLDINGEX('','',1),MKT);

//多头
if H-TENTERPRICE>=3 AND Tenterbars>0 and TBUYHOLDINGEX('','',1)>0 and n1=0 then begin
止盈1:TSELL(1,1,MKT);//盈利3个点止盈1手
n1:=1;
end
if H-TENTERPRICE>=5 AND  Tenterbars>0 and  TBUYHOLDINGEX('','',1)>0>0 and n2=0 then begin
止盈2:TSELL(1,1,MKT);//盈利5个点止盈1手
n2:=1;
end
                                                                                                                                                           
//空头
if TENTERPRICE-L>=3 AND  Tenterbars>0 and TSELLHOLDINGEX('','',1)<0 and n3=0 then begin
止盈3:TSELLSHORT(1,1,MKT);//盈利3个点止盈
n3:=1;
end
if TENTERPRICE-L>=5 AND  Tenterbars>0 and  TSELLHOLDINGEX('','',1)<0<0 and n4=0 then begin
止盈4:TSELLSHORT(1,1,MKT);//盈利5个点止盈
n4:=1;
end

后台是直接操作实际账号的,因此你手工进行的操作可能也会影响到策略运行。



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


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

 
//移动止损模块部分*******************************
//A有三种数值状态:1,0,最新价;
//当A=1时表示当前有持仓,A=0时表示移动止损执行完毕,A=最新价时用于比较价格是否回落

//将A赋值为1,表示当前有持仓
IF TBUYHOLDINGEX( '','' ,0 )>0 AND EXTGBDATA('a' )=0 THEN BEGIN
EXTGBDATASET( 'a',1 );
END

//使A始终表示监控开始后的最高价
IF DYNAINFO(  7)>EXTGBDATA('a' ) and EXTGBDATA('a' )>0 THEN BEGIN
EXTGBDATASET( 'a',DYNAINFO(  7));
END

MXYL:EXTGBDATA('a')-TAVGENTERPRICEEX2('' ,'',1);//最高盈利值
CYL:DYNAINFO(  7)-TAVGENTERPRICEEX2('' ,'',1);//当前盈利值

//发现价格回落止损,并将A赋值为0表示移动止损动作完成
IF MXYL>5*MINDIFF and MXYL<10*MINDIFF and EXTGBDATA('a' )>0 and CYL<=0.61*MXYL THEN BEGIN  //最大盈利大于5点且小于10点,且当前盈利相对最高值回撤幅度达到0.61
TSELL(1,TBUYHOLDINGEX('','',1),MKT );
EXTGBDATASET( 'a',0);
END
//*******************************


if time=CLOSETIME(0) then TSELL(1,TBUYHOLDINGEX('','',1),MKT);//收盘全平


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


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

以上是移动止损的部分,以多头为例,完成了部分,剩下的是类似的代码,可以自行尝试完成。
另外这里用到了全局变量

http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm


图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看


后台代码要复杂很多,客户需要注意理解用例中的代码。


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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/8/2 11:25:38
  发帖心情 Post By:2018/5/9 14:42:48    Post IP:222.88.106.72[只看该作者]

谢谢我标准版在试用专业版公式有难度没人指导根本不行
  


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


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

 图表转后台要慢慢来的,后台要处理的代码会比图表复杂。


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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/8/2 11:25:38
  发帖心情 Post By:2018/5/9 14:48:11    Post IP:222.88.106.72[只看该作者]

爱好飞狐才用的金字塔

 回到顶部