金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 销售166

指标编写

[复制链接]

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-17 14:12 | 显示全部楼层
[PEL] 复制代码
variable:maxprofit:=0,P1:=0,P2:=0;//有仓位时最大获利幅度 //普通开仓
input:m1(4,1,100,10),m2(8,1,100,10),m3(16,1,100,10),m4(32,1,100,10);
bbi:(ma(close,m1)+ma(close,m2)+ma(close,m3)+ma(close,m4))/4;
input:ss(5,1,100,1);//开仓手数;
cz:=abs(bbi-ref(bbi,1));  
    
up:=bbi>ref(bbi,1);
down:=bbi<ref(bbi,1);
平空开多X:=up  and ref(up,1)  and  cross(c,bbi) and cz>ref(cz,1);
平多开空X:=down and ref(down,1) and cross(bbi,c) and cz>ref(cz,1) ;  
 
平空开多:=REF(平空开多X,1);
平多开空:=REF(平多开空X,1);
 
    
if 平空开多 then begin
sellshort(holding<0,HOLDING,LIMITR,O);
buy(holding=0,ss,LIMITR,O); 
if holding=0 then maxprofit:=0;
end
    
if 平多开空 then
begin
sell(holding>0,HOLDING,LIMITR,O);
buyshort(holding=0,SS,LIMITR,O);
if holding=0 then maxprofit:=0;
end
  
  
IF P1<>0 AND h>=P1 AND HOLDING=0 AND NUMPROFIT(1)>0 and c>bbi THEN   止盈后开多:BUY(1,SS,MARKETR); 
IF P2<>0 AND L<=P2 AND HOLDING=0  AND NUMPROFIT(1)>0 and c<bbi THEN 止盈后开空:BUYSHORT(1,SS,MARKETR);
  
//判断当前持仓状态下的最大盈利
win:=0; win2:=0;
if holding > 0 and enterbars >= 0 then
begin
P2:=0;
win:=(h-enterprice); //记录最大盈利点数
if win>maxprofit then  BEGIN   maxprofit:=win; P1:=H;END 
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
  
end
    
if holding < 0 and enterbars >= 0 then
begin
P1:=0;
win:=(enterprice-l); //记录最大盈利点数
if win > maxprofit then  BEGIN maxprofit:=win;P2:=L; END
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
    
 
    
浮动盈亏点数:win;
最大盈利:maxprofit;
浮动盈亏幅度:100*win/AVGENTERPRICE;
    
//出现浮动亏损比如2%平仓
多止损:sell(浮动盈亏幅度 < -2,0,marketr);
if win2 >= 30 and win > 0 then
begin
多止赢:sell(1, 0,marketr);
end
  
  
//出现浮动亏损比如2%平仓
空止损:sellshort(浮动盈亏幅度 < -2,0,marketr); 
  
IF win2 >=30 and win > 0 THEN
BEGIN
空止赢:sellshort(1, 0,marketr);
END
 
if  holding=0 then maxprofit:=0;
 
持仓:holding;


做了调整,你先加载在图上看下信号 再运行。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

0

主题

213

帖子

213

积分

等级: 免费版

注册:
2022-9-28
曾用名:
发表于 2023-3-17 14:14 来自手机 | 显示全部楼层
江经理好:期货价在bbi线之下空单止嬴之后再开空单唯一条件就是再跌到止盈时的最低价,不跌向上穿过bbi线bbi线斜率向上就买多了,多单相反,止盈后再买多,除非期货价再涨到止盈时的最高价,否则不再开多单,如果选择向下穿过BBi线且bbi线斜率向下就买空单了。
回复

使用道具 举报

0

主题

213

帖子

213

积分

等级: 免费版

注册:
2022-9-28
曾用名:
发表于 2023-3-17 15:00 来自手机 | 显示全部楼层
好的
回复

使用道具 举报

0

主题

213

帖子

213

积分

等级: 免费版

注册:
2022-9-28
曾用名:
发表于 2023-3-17 15:00 来自手机 | 显示全部楼层
谢谢啦!
回复

使用道具 举报

0

主题

213

帖子

213

积分

等级: 免费版

注册:
2022-9-28
曾用名:
发表于 2023-3-19 17:03 来自手机 | 显示全部楼层
老师好,我加截了,发现好像只实现了我的一个想法,就是多仓在移动止盈后再次涨到移动止嬴时所依据的前高时再次买多,其它好像没有实现。我的想法是二个买多条件,一个是系统开多仓,价格实破bbi线以上且bbi线斜率向上买多,移动止赢后再次涨到移动止赢时所依据的前高再次买多,(这个已实现),买空二个条件,一是系统开空单,价格在下破bbi线以下且bbi线斜率向下开空单,第二开空单条件:空单移动止盈后再次跌到空单移动止赢时所依据的最低点时再次开空单。在图表上加载后二个买多单条件和二个买空单条件好像只有一个多单移动止赢后再买多单的条件满足了,麻烦江经理再帮我看一下哦!辛苦你啦!
回复

使用道具 举报

0

主题

213

帖子

213

积分

等级: 免费版

注册:
2022-9-28
曾用名:
发表于 2023-3-19 18:41 来自手机 | 显示全部楼层
有许多品种止盈后也不再开仓,不同同期有些开仓有些不开仓,不知道什么原因
回复

使用道具 举报

0

主题

213

帖子

213

积分

等级: 免费版

注册:
2022-9-28
曾用名:
发表于 2023-3-20 09:20 来自手机 | 显示全部楼层
麻烦江经理看一下65#.主要是图表上没什么信号
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-20 15:02 | 显示全部楼层
本帖最后由 技术009 于 2023-3-20 15:43 编辑

[PEL] 复制代码
variable:maxprofit:=0,P1:=0,P2:=0;//有仓位时最大获利幅度 //普通开仓
input:m1(4,1,100,10),m2(8,1,100,10),m3(16,1,100,10),m4(32,1,100,10);
bbi:(ma(close,m1)+ma(close,m2)+ma(close,m3)+ma(close,m4))/4;
input:ss(5,1,100,1);//开仓手数;
cz:=abs(bbi-ref(bbi,1));  
     
up:=bbi>ref(bbi,1);
down:=bbi<ref(bbi,1);
平空开多X:=up  and ref(up,1)  and  cross(c,bbi) and cz>ref(cz,1);
平多开空X:=down and ref(down,1) and cross(bbi,c) and cz>ref(cz,1) ;   
  
平空开多:=REF(平空开多X,1);
平多开空:REF(平多开空X,1);
  
     
if 平空开多 then begin
IF HOLDING<>0 THEN P2:=0;
sellshort(holding<0,HOLDING,LIMITR,O);
buy(holding=0,ss,LIMITR,O); 
if holding=0 then maxprofit:=0;
end
     
if 平多开空 then
begin
IF HOLDING<>0 THEN P1:=0;
sell(holding>0,HOLDING,LIMITR,O);
buyshort(holding=0,SS,LIMITR,O);
if holding=0 then maxprofit:=0;
end
   
  
IF P1<>0 AND h>=P1 AND HOLDING=0 and c>bbi THEN  止盈后开多:BUY(1,SS,MARKETR); 
IF P2<>0 AND L<=P2 AND HOLDING=0  and c<bbi THEN 止盈后开空:BUYSHORT(1,SS,MARKETR);
   
//判断当前持仓状态下的最大盈利
win:=0; win2:=0;
if holding > 0 and enterbars >= 0 then
begin
P2:=0;
win:=(h-enterprice); //记录最大盈利点数
if win>maxprofit then  BEGIN   maxprofit:=win; P1:=H;END
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
   
end
     
if holding < 0 and enterbars >= 0 then
begin
P1:=0;
win:=(enterprice-l); //记录最大盈利点数
if win > maxprofit then  BEGIN maxprofit:=win;P2:=L; END
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
     
  
     
浮动盈亏点数:win;
最大盈利:maxprofit;
浮动盈亏幅度:100*win/AVGENTERPRICE;
     
//出现浮动亏损比如2%平仓
多止损:sell(浮动盈亏幅度 < -2,0,marketr);
if win2 >= 30 and win > 0 then
begin
多止赢:sell(1, 0,marketr);
end
   
   
//出现浮动亏损比如2%平仓
空止损:sellshort(浮动盈亏幅度 < -2,0,marketr); 
   
IF win2 >=30 and win > 0 THEN
BEGIN
空止赢:sellshort(1, 0,marketr);
END
  
if  holding=0 then maxprofit:=0;
  
持仓:holding;

做了些微调。

1.信号的确会少,因为现在条件和之前不一样,就是需要有一个上下穿的动作才算指标条件满足。总的就是条件更严格了。
2.其实你这个需求我是建议你改用后台程序化试一下的。图表本身信号是基于回测的,正常指标的开平仓还行,但是稍微精细点的止盈止损 以及相关的操作 都是精度不够的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-20 15:43 | 显示全部楼层
又更新了,你重新看下。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

0

主题

213

帖子

213

积分

等级: 免费版

注册:
2022-9-28
曾用名:
发表于 2023-3-20 15:47 来自手机 | 显示全部楼层
在哪啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-6-12 13:13 , Processed in 0.115893 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表