金字塔决策交易系统

标题: 分批建仓问题 [打印本页]

作者: 600372    时间: 2023-12-19 16:21
标题: 分批建仓问题
分批建仓,比如我有100的保证金仓位,想要分50批建仓入场,很简单例子,比如说突破开首仓,然后接下来1,每天尾盘55分加仓一次,一次2w保证金,2没盈利0.1%atr加仓一笔,每次加仓都是2w保证金,代码如何实现它

作者: 600372    时间: 2023-12-19 17:06
盈利0.1%以首仓开仓的价格为锚点,每盈利0.1%就加仓一笔
作者: 600372    时间: 2023-12-19 17:36
600372 发表于 2023-12-19 17:06
盈利0.1%以首仓开仓的价格为锚点,每盈利0.1%就加仓一笔

加仓条件是1,每天尾盘加,设置为2点55分    2,以首仓开仓价格为锚点,向上盈利0.1%加一次,两种加仓建仓的方法
作者: 技术009    时间: 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




作者: 600372    时间: 2023-12-20 09:33
技术009 发表于 2023-12-20 09:12
[mw_shl_code=pel,true]input:zj(20000,1,1000000,1);
下单资金量:=zj;
marginratio:=taccount(41);//多 ...

variable:index:=1;,这个起什么作用呢?还有这个能够实现循环加的功能吗,以首仓开仓价格为锚点,每次向上走0.1%,加一次,直到达到最大的加仓次数限制
作者: 600372    时间: 2023-12-20 09:34
openbar是首仓开仓到现在的的k线数吧?
作者: 技术009    时间: 2023-12-20 09:37
index 是记录: 初始开仓价 和最新价 差多个 0.001的涨幅的。

对价格跨越式 涨多个0.001 情况 ,这里会略有偏差。但是不影响后续加仓的逻辑。

作者: 技术009    时间: 2023-12-20 09:39

openbar是首仓开仓到现在的的k线数吧?” 我是用它作为 取首次开仓的价格的 条件的。
作者: 600372    时间: 2023-12-20 09:42
技术009 发表于 2023-12-20 09:39

openbar是首仓开仓到现在的的k线数吧?” 我是用它作为 取首次开仓的价格的 条件的。

这个函数是这个啥意思?我想用用这个函数获取首仓开仓以来的持仓k线数
作者: admin    时间: 2023-12-20 09:50
首次开仓的位置。可以直接用
作者: 600372    时间: 2023-12-21 17:50
每天收盘前55分下单,可以实现说每天就限制下单一次吗,不然,会不会每天下单很多次呢

补充内容 (2023-12-21 21:42):
你发我这段收盘前下单的代码,我写进去信号有问题的,会出现反复开仓的,这个我要实现的是每次尾盘只看一次
作者: 600372    时间: 2023-12-21 21:43
我的信号和代码截图上去

作者: 技术009    时间: 2023-12-22 08:51
系统默认时区是金字塔时区。 你用time判断时间  14:55:00 对应的是185500。

我的范例里写的也是 185500
作者: 600372    时间: 2023-12-22 08:52
这个时间怎么转换的啊?
作者: 技术009    时间: 2023-12-22 08:54
金字塔时区:https://www.weistock.com/docs/HE ... 1%94%E6%97%B6%E5%8C
%BA

加四小时就行了,而且:
(, 下载次数: 98)