金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3718|回复: 26

分批建仓问题

[复制链接]

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

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

[PEL] 复制代码
input:zj(20000,1,1000000,1);
下单资金量:=zj;
marginratio:=taccount(41);//多头保证金比率. 这个要把合约信息设置里面的费率设置正确,否则函数取到的值可能是不对的。
bzj:=close*multiplier*marginratio;//一手保证金占用
ss1:=intpart(下单资金量/(bzj));//根据资金zj计算的开仓手数,注意这个计算结果可能是0 需要在开仓时候判断下


variable:index:=1;
VARIABLE:ct:=0;//加仓次数
初始开仓条件:barpos=1;


if 初始开仓条件 and holding=0 then 
begin
buy(ss1>0,ss1,marketr);         
end 


firstp:valuewhen(openbar=0,enterprice);//首次入场的开仓价

if time= 185500 and ct<50  then 
begin 
//如果ss1是0  说明资金不足了
尾盘加仓:buy(ss1>0,ss1,marketr);
ct:=ct+1;        
end 
 

if c/firstp>=(1+index*0.001) and c>enterprice and holding>0 and  ct<50 then 
begin
index:=index+1;         
加仓:buy(ss1>0,ss1,marketr);
ct:=ct+1;        
end 

if holding=0 then begin
index:=1;
ct:=0;end



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

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-12-20 09:37 | 显示全部楼层
index 是记录: 初始开仓价 和最新价 差多个 0.001的涨幅的。

对价格跨越式 涨多个0.001 情况 ,这里会略有偏差。但是不影响后续加仓的逻辑。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-12-20 09:39 | 显示全部楼层

openbar是首仓开仓到现在的的k线数吧?” 我是用它作为 取首次开仓的价格的 条件的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-12-22 08:51 | 显示全部楼层
系统默认时区是金字塔时区。 你用time判断时间  14:55:00 对应的是185500。

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

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-12-22 08:54 | 显示全部楼层
金字塔时区:https://www.weistock.com/docs/HE ... 1%94%E6%97%B6%E5%8C
%BA

加四小时就行了,而且:
截图202312220854222461.png

这里都有显示的。实在不行,你把time输出看下也行。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-12-22 09:32 | 显示全部楼层
本帖最后由 技术009 于 2023-12-22 09:35 编辑

你看清楚了,我时间判断怎么写的,我是等于。 你写大于等于,那就是收盘的后2根K。
最后2根K,在五分钟上是 185500 和190000 2根K.
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-12-22 10:24 | 显示全部楼层
1.不要用循环。循环中的语句实际交易时候也只会触发一次,尽管你在K上可能有多个信号。但是实际毫无意义,还会影响到正常判断逻辑。
2. 你中间有个加仓2.  后面加仓1 触发 是因为 价格比收盘加仓的价格低导致的。 它没有对比到前面的多个加仓1.
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-12-22 13:15 | 显示全部楼层
截图202312221305438439.png



你这里代码写的是需要小于2个价格的。


1.第1个是最近一次开仓价  你尾盘加仓也算开仓,怎么可能没有影响呢。

2.第2个就是firstp的那个。 我建议你把这个价格输出出来,你看下数值情况。这样你就能直接判断为什么有的地方小于前面开仓价就会开仓,有的不可以。 因为你这里代码是需要小于这2个价格才会加仓的。

你要调整的是条件判断里 应该去掉小于上次开仓价的判断,否则你尾盘加仓一定会干扰到。 或者换其他方式 记录 尾盘开仓前的一笔价格,小于这个价格。
//收盘加仓前的一次开仓价
last_openc:valuewhen(time<185500,enterprice);
即 c<last_openc  (空头)

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-6 15:32 , Processed in 0.172590 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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