金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1041|回复: 7

后台代码,如果没有问题就准备购买软件。

[复制链接]

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
发表于 2025-2-19 16:08 | 显示全部楼层 |阅读模式
我使用金字塔免费版本有大半年了, 之前用图表模式, 总有点问题, 在信号确认的情况下, 还是记不住止损和止盈。 现在搞了一个简单策略, 是后台的。 如果能够解决这个问题。 我最近就准备购买软件了。 谢谢。

//1.  策略
N1KW:=REF(H,1)-REF(L,1);                     N2KW:=REF(HHV(H,2),1)-REF(LLV(L,2),1);          N3KW:=REF(HHV(H,3),1)-REF(LLV(L,3),1);     
N1KLL:=REF(L,1);                                  N2KLL:=REF(LLV(L,2),1);                                    N3KLL:=REF(LLV(L,3),1);                                 
N1KHH:=REF(H,1);                                N2KHH:=REF(HHV(H,2),1);                                 N3KHH:=REF(HHV(H,3),1);                     
N1K50:=(N1KLL+N1KHH)/2;                   N2K50:=(N2KLL+N2KHH)/2;                               N3K50:=(N3KLL+N3KHH)/2;

宝蓝多开:=CLOSE>N1KHH;                       DRAWTEXT(宝蓝多开,REF(LOW,1),'B'),COLORFFFF00;
灰蓝多开:=CLOSE>N1KHH;                       DRAWTEXT(灰蓝多开,REF(LOW,1),'B'),COLORC08000;
多开执行:=宝蓝多开 OR 灰蓝多开;

红色空开:=CLOSE<N1KLL;   
空开执行:=红色空开;                          DRAWTEXT(空开执行,REF(HIGH,1),'S'),COLORWHITE;  


//2.  固定报价
//空价
空开价A:=IF(空开执行,(N3KHH+OPEN+N3KLL)/3,0);                                 
空盈价A:=IF(空开执行,N3KHH-1.4*N3KW,0);                                       
空损价A:=IF(空开执行,N3KHH,0);                                          

//多价               
多开价A:=IF(多开执行,(N3KLL+OPEN+N3KHH)/3,0);                                    
多盈价A:=IF(多开执行,N3KLL+1.4*N3KW,0);                             
多损价A:=IF(多开执行,N3KLL,0);   


// 一些要求
//3. 收盘前7分钟不开新仓,需要补充
remainingtime(closetime(0))>7*60;

//4. 开盘前10分钟不开新仓
//5. 收盘前10分钟不开新仓
//6 报单后6分钟不按指定开仓价成交 就撤单
//7. 成交后10分钟没有到达止盈点且没有到达止损价直接平仓



//*************** 4. 后台后台交易执行 ********************

//****持仓管理*****

globalvariable:B_01:=0,B_opn_01:=0,B_tkp_01:=0,B_stp_01:=0,B_stp_brk_01:=0,B_idx_01:=0,
                    s_01:=0,s_opn_01:=0,s_tkp_01:=0,s_stp_01:=0,s_stp_brk_01:=0,s_idx_01:=0;               
                   R_C1:=REF(C,1);         

//*************** 多头 后台********************
//****平仓*****      
//------------------多单:
//@多单:止盈

if b_01=1 and close>=b_tkp_01 and tbuyholdingex('','',1)>0 then                                                            
begin
        DA盈:tsell(1,1,lmt,close);                                                     
        b_01:=0;                                                                                                
end

//@多单:价格limitr 止损
if b_01=1 AND R_C1<B_STP_01  and tbuyholdingex('','',1)>0 then                                                         
begin
        DA损:tsell(1,1,lmt,close);                                               
        b_01:=0;
end

//****开仓*****      

//@多单:开仓


if 多开执行 and b_01=0 and tbuyholdingex('','',2)=0 and remainingtime(closetime(0))>15*60 then               
begin

        DA:tbuy(1,1,lmt,买开仓价A);           //执行买开   
        b_01:=1;                              /          /状态 表示1手多单已是持仓状态               
        b_opn_01:=买开仓价A;                  //开仓        
        b_tkp_01:=买止盈价A;                  //止盈  
        b_stp_01:=买止损价A;                  //价格止损  
        b_idx_01:=barpos;                      //开仓k线        
End

//*************** 空头 ********************

//****平仓*****      

//------------------空单:
//@空单:止盈

if s_01=1 and close<=s_tkp_01 and  tsellholdingex('','',1)>0 then                                                         
begin
        KA盈:tsellshort(1,1,lmt,close);                                                                       
        s_01:=0;                                                                                                                              
end

//@空单:limitr价格止损
r_c1:=ref(c,1);
if s_01=1 AND R_C1>S_STP_01  and  tsellholdingex('','',1)>0 then                                                         
begin
        KA损:tsellshort(1,1,lmt,open);                                                                 
        s_01:=0;                                                  
end


//****开仓*****      

//@空单:开仓

if BS卖开执行 and s_01=0 and  tsellholdingex('','',2)=0 and remainingtime(closetime(0))>15*60 then                          
begin
        KA:tbuyshort(BS卖开执行,1,lmt,卖开仓价A);        
        s_01:=1;                                               
        s_opn_01:=卖开仓价A;                              
        s_tkp_01:=卖止盈价A;                                
        s_stp_01:=卖止损价A;                                
        s_idx_01:=barpos;                                               
End

//2. 收盘前2分钟自动全部平仓,
??
if remainingtime(closetime(0))<2*60??then begin
? ? tsellshort(tsellholdingex('','',1)>0,tsellholdingex('','',1),mkt);
? ? tsell(tbuyholdingex('','',1)>0,tbuyholdingex('','',1),mkt);
end




回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-19 16:09 | 显示全部楼层
你具体是什么问题呢
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2025-2-19 16:23 | 显示全部楼层
这个代码简单, ,麻烦看一下那个地方除了问题。 // 一些要求
//3. 收盘前7分钟不开新仓,需要补充
remainingtime(closetime(0))>7*60;

//4. 开盘前10分钟不开新仓
//5. 收盘前10分钟不开新仓
//6 报单后6分钟不按指定开仓价成交 就撤单
//7. 成交后10分钟没有到达止盈点且没有到达止损价直接平仓。 这些内容需要补充。
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-19 16:28 | 显示全部楼层
//直接用电脑时间就行了,这个作为开仓条件
ti_cond:currenttime<145300;

if tenterbars(1)=6 and TISPRVREMAIN(1)=1 then TCANCEL(1,1);


if tenterbars(0)=10 then tenterprice<止盈 and tenterprice>止损 then tsell(1,tbuyholding(1),mkt

撤单和平仓部分,没办法精确控制时间的,智能近似用多少根k来做
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2025-2-19 17:45 | 显示全部楼层
我一直怀疑是不是因为不是付费账户的原因, 导致很多时候止盈止损不执行
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-19 17:46 | 显示全部楼层
这个最好配合debugfile把自己代码的一些关键信息进行打印,程序出来是否逻辑有问题啥的都需要配合调试的
不是说写好了就肯定没问题,有时候很多未考虑细节只能通过打印出来的结果去查才能知道问题
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

76

帖子

76

积分

等级: 免费版

注册:
2024-1-6
曾用名:
 楼主| 发表于 2025-2-19 17:46 | 显示全部楼层
技术008 发表于 2025-2-19 16:28
//直接用电脑时间就行了,这个作为开仓条件
ti_cond:currenttime

我不知道您刚才写的内容加在哪里?
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-19 17:51 | 显示全部楼层
第一个时间就是一个条件,放到你的开仓条件中去就行了
时间小于145300才能运行开仓,这就是一个开仓条件,和你自己的开仓条件要自己会组织比如

if c>o and currenttime<145200 then buy()

这种条件组合起来用,这个时最基本的逻辑结构自己要知道的

你这里不是已经把时间放进去了吗,只是把你原来那个时间写法其实直接用电脑时间做判断就行了,这样其实最简单

currenttime就是一个当前实时的时间,就好比你什么时候可以开仓 什么时候可以平仓,自己对这个时间都限制好就行了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-16 20:08 , Processed in 0.136155 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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