金字塔决策交易系统

标题: 图表实盘交易计算品种手数 [打印本页]

作者: 如果可以    时间: 2023-6-4 16:28
标题: 图表实盘交易计算品种手数
技术您好,请教一下,我实盘账户有100万,想在图表交易几个品种,每个品种取10万满仓开仓,我要怎么计算每个品种取的10万最大能开多少手,可否请你写一下这个图表手数的计算公式,谢谢。
作者: 技术006    时间: 2023-6-5 08:15
[PEL] 复制代码
input:zj(10000,1,1000000,1);
下单资金量:=zj;
MarginRatio:=TACCOUNT(41);//多头保证金比率. 这个要把合约信息设置里面的费率设置正确,否则函数取到的值可能是不对的。
bzj:=Close*Multiplier*MarginRatio;//一手保证金占用
ss1:=Intpart(下单资金量/(bzj));//根据资金ZJ计算的开仓手数

//最终结果
//ss1可能会有计算出为0 的情况,而恰好为手数参数为0在函数中是满仓开的含义。因此再次处理下,当ss1为0情况下默认按下一手处理。
ss:if(ss1>0,ss1,1);

作者: 如果可以    时间: 2023-6-5 12:59
再请问哈这个下单资金我想弄成:可用资金小于10万的时候满仓下单,当可用资金大于10万的时候就取10满仓下单又怎么写这个公司呢,再麻烦一下技术写一下,谢谢。
作者: 技术010    时间: 2023-6-5 13:05
你这个需求只能在后台程序化上使用,图表是不建议读取账户的资金作为下单的条件的,写法如下:

INPUT:ZJ(10000,1,1000000,1);
下单资金量:=IF(TACCOUNT(19)>ZJ,ZJ,TACCOUNT(19));
MARGINRATIO:=TACCOUNT(41);//多头保证金比率. 这个要把合约信息设置里面的费率设置正确,否则函数取到的值可能是不对的。
BZJ:=CLOSE*MULTIPLIER*MARGINRATIO;//一手保证金占用
SS1:=INTPART(下单资金量/(BZJ));//根据资金ZJ计算的开仓手数

//最终结果
//SS1可能会有计算出为0 的情况,而恰好为手数参数为0在函数中是满仓开的含义。因此再次处理下,当SS1为0情况下默认按下一手处理。
SS:IF(SS1>0,SS1,1);
作者: 如果可以    时间: 2023-6-5 13:09
哦哦,那如果说我在图表用固定的10万做为下单资金,但是在实盘的时候我的可用资金不足10万,程序会怎么下单呢?还是直接不下单?
作者: 技术010    时间: 2023-6-5 13:13
会触发信号下单,但是报单后,柜台的回报是报资金不足的。
作者: 如果可以    时间: 2023-6-5 13:23
那就是不能成功下单吗?还是可以以最大下单数下单呢?
作者: 技术010    时间: 2023-6-5 13:25
直接是下单不成功,不会成交的。
作者: 如果可以    时间: 2023-6-5 13:28
如果直接用可用资金满仓下单,在图表会有什么风险,是不准确还是不能正确下单,还是有什么漏洞呢?
作者: 技术010    时间: 2023-6-5 13:34
因为账户的可用资金是只有最新值无历史值的,直接用账户资金来下单,资金的变化会造成历史上的仓位发生变化,会影响后续的开平仓信号的触发的。图表上的信号是受历史信号影响的,所以在编写图表策略的情况,要考虑到历史K线上计算出来的信号和仓位不能发生变化。后台则不同,后台只关注最新K线的情况,历史K线不会影响后续信号的。
作者: 如果可以    时间: 2023-6-5 13:35
哦哦,好的,谢谢技术,明白了。
作者: 如果可以    时间: 2023-6-7 21:53
技术您好,再请教一下,比如说我的某个品种白天已经开多盈利了,但是下午3点收盘前平仓了,到了晚上这个品种仍然是做多信号,请问要怎么写这个公式才能在晚上开盘后再次开多?请技术帮忙写一下,谢谢!
作者: 技术006    时间: 2023-6-8 08:13
开多条件成立并且满足触发时机自然就会开仓。不需要特别处理
作者: 如果可以    时间: 2023-6-8 10:57
相当于他是白天触发的条件,晚上是延续条件,但是白天已经平仓了,晚上没有新触发条件,这种情况下怎么让他在晚上再次开仓呢?
作者: 技术010    时间: 2023-6-8 11:00
这个就需要看开盘时,图上是否有这个开多的信号了,如果没有,那说明你开多的天没有满足,有的话,就会直接下单了啊。你使用固定间隔模式的话,历史K线上的信号不会触发下单的。
作者: 如果可以    时间: 2023-6-8 13:22
使用的是逐k模式,开多信号是白天14:26,这个信号是一直持续到晚上的,因为白天平仓了,就想晚上在这个持续做多而且没有持仓的情况下自动再开多仓。
作者: 技术010    时间: 2023-6-8 13:25
如果使用的走完一根K线的模式的话,那会等到下根K线才会触发的啊,你夜盘开始的时候,会对这个信号进行下单的啊,这要这个信号在昨天的最后一根K线上就可以。
作者: 如果可以    时间: 2023-6-8 14:46
这个信号不是在昨天的最后一根k线,我用的15分钟周期,这个信号是在白天14点过出现的,这种情况有什么办法在夜盘开盘后自动下单吗?如果把持仓量等于0删掉可以下单,但是会持续下一堆单,所以不知道怎么解决。
作者: 技术010    时间: 2023-6-8 14:51
历史信号是不会下单的啊,你自己手工干预进行平仓,但是图上还是有理论持仓的啊,如果你开仓条件中有holding=0作为条件,那只有平仓之后,才会再次开仓的啊。如果你需要尾盘平仓的话,那可以在代码中加上尾盘最后一根K线平仓的代码啊,这样你人工平仓后,当天的理论持仓也变为0了啊,第二天开盘满足条件就会有开仓信号了啊,不能直接人工去平仓啊。
作者: 如果可以    时间: 2023-6-8 20:56
好的,技术,我试试。
作者: 如果可以    时间: 2023-6-8 20:57
请问这个最后一根k线平仓代码怎么写?
作者: 技术010    时间: 2023-6-9 08:46
1、你使用的周期是多少,如果是分钟周期的,那可以直接写
   if time=closetime(0) then begin
      sell();
      sellshort();
      end

2、尾盘清仓的范例如下:
    https://www.weistock.com/bbs/forum.php?mod=viewthread&tid=53
作者: 如果可以    时间: 2023-6-10 16:30
技术您好,再请教一下这两个函数:callstock   stkindi   除了向前引用一个周期,还有其他方法避免产生未来性质吗?谢谢。
作者: 如果可以    时间: 2023-6-10 16:31
就想引用当前周期,但是有未来性质,信号会漂移,有什么办法能解决吗?
作者: 技术006    时间: 2023-6-12 08:12
如果可以 发表于 2023-6-10 16:30
技术您好,再请教一下这两个函数:callstock   stkindi   除了向前引用一个周期,还有其他方法避免产生未来 ...

没有别的方式。
作者: 如果可以    时间: 2023-6-14 14:25
技术您好,再请教一下,某一个品种白天已经是做多信号了,到晚上还是做多信号,这个时候没有持仓,请问我要怎么写这个公式才能让他晚上开盘后自动开仓呢?
作者: 如果可以    时间: 2023-6-14 14:26
比如说我用的 5分钟周期,怎么让系统在开盘5后自动开仓。
作者: 技术010    时间: 2023-6-14 14:29
1、首先就需要晚上开盘后需要在K线上出现开仓信号,这样才会触发,其次你的开仓条件中就不能有holding=0的限制了,否则你前面只有开仓信号,没有平仓信号时,后面是不会再出开仓信号的。
2、图表交易和实际持仓没有关系,是看图表上的理论持仓holding的,你图上有开仓信号,那holding就不会为0.
作者: 如果可以    时间: 2023-6-14 15:05
那只有把开仓条件中的holding=0去掉,他在开盘5分钟后才会开仓吗?还是也要再次出现开仓信号他才会开仓
作者: 如果可以    时间: 2023-6-14 15:08
在图标上有没有什么办法解决这种情况,不然都需要手动开仓太麻烦。
作者: 技术010    时间: 2023-6-14 15:08
是要出现信号才会开仓啊,不会对历史K线上的开仓信号进行报单的啊,最新K线上信号才会触发。把holding=0去掉,才可能后面再出开仓信号的,如果在开仓条件中加上了holding=0,是不可能有连续的开仓信号的。
作者: 如果可以    时间: 2023-6-14 15:15
这样我试过,但是有时候出现连续开仓信号他会开一大堆仓,所以就加了这个限制。没有其他办法解决这种情况吗?是不是只有后台才能解决这种情况。
作者: 技术010    时间: 2023-6-14 15:20
1、那就是要收盘前让图上出现一个平仓的信号,这样后面才会可能再出开仓信号啊。
2、这个不管是用图表还是后台,都需要最新的k线上满足了条件出现信号才会下单啊。你后台上面开仓条件不加持仓=0的限制,那一样也是满足条件都会不断开仓啊。
作者: 如果可以    时间: 2023-6-14 15:25
那是不是像你之前说的那样,在公式中加一个收盘平仓的代码,这样是不是就能解决这种情况,收盘最后一根k线平仓,到夜班如果这个做多信号还是延续的就会在开盘5分钟后再次开多仓?
作者: 如果可以    时间: 2023-6-14 15:32
我使用的是逐k模式,使用周期不固定,请问怎么实现每个周期在逐k模式下都能实现收盘前平仓,麻烦技术帮我写一下这个代码,我看示例那个没看明白,谢谢。
作者: 技术010    时间: 2023-6-14 15:40
1、是的,平仓信号之后,只要开盘第一根K线满足开仓条件出现了开仓信号,那就会触发。
2、走完K线模式日内平仓的话,只能指定倒数第二根的K线时间来平仓, 这个就和你使用的周期有关系了,没有适用各个分钟周期的统一写法,只能指定K线时间,以1分钟周期为例:
    if time=185900 then begin
        sell(holding>0,holding,market);
        sellshort(holding<0,holding,market);
        end
作者: 如果可以    时间: 2023-6-14 15:49
您这个就是逐k模式下指定收盘前1分钟全部平仓吗?这个不管用什么周期都可以实现的吧?
作者: 技术010    时间: 2023-6-14 15:50
我上一楼说了,这个不是各个周期都适用的啊,1分钟周期,倒数第二根K线时间就是185900,假如是5分钟周期,倒数第二根K线时间就是185500,条件就要换成time=185500了.
作者: 如果可以    时间: 2023-6-14 15:53
好的,谢谢技术。
作者: 如果可以    时间: 2023-6-17 08:41
技术您好,请问一下这个系统要每天重启一次吗?怎么一直打开他不执行尾盘平仓呢?
作者: 技术006    时间: 2023-6-18 07:11
不需要,但是定期重启时必要的。可以保证系统的稳定性。

36楼的方法,是用的k线时间。你运行的周期上是不是有对应的k线时间存在。其次如果是最后一根k的时间,应该是用固定时间间隔。否者只会在次日开盘平仓
作者: 如果可以    时间: 2023-6-18 11:03
我是每个周一打开系统,然后周六早上关掉系统,你们的金字塔系统也是这样的,但是这个星期六早上我起来关系统的时候发现很多品种的k线只显示到星期五早上10:15,后面就没有k线了,然后我重启您们的金字塔系统后k线就重新出现了,请问怎么解决这种情况,网络没问题,而且不是所有品种都这样,少部分k线是到周五晚上收盘的。
作者: 技术006    时间: 2023-6-18 13:50
软件每天要做收盘保存数据的操作,或者每天开盘前补充数据。才能保证数据的完整性。
https://www.weistock.com/docs/HE ... 94%B6%E7%9B%98.html
作者: 如果可以    时间: 2023-6-18 18:17
如果这个设置了自动收盘,那我就可以周一登录你们金字塔系统,就可以到周六再关闭了吗,期间会不会影响交易?
作者: 技术006    时间: 2023-6-19 08:09
可以。软件也支持定时重启功能。根据需要和实际运行情况决定重启的频率和时间即可
作者: 如果可以    时间: 2023-6-19 08:55
软件重启后怎么实现自己弄好的图表交易自动启动呢?还是都要手动启动图表交易,这个持仓是理论持仓还是实际持仓,比如说我手动开仓错了,图标上是做多的,我开成做空了,但是公式里设置了止损,这样能自动止损吗?
作者: 技术010    时间: 2023-6-19 09:10
1、只有使用软件中的计划重启功能,才能重启后自动开启交易,这个是辅助交易功能,即使使用计划重启功能,也建议人为检查下启动的状态,避免异常问题。https://www.weistock.com/docs/HE ... 87%8D%E5%90%AF.html
2、可以止损啊,软件的止盈止损功能,是监控账户持仓的。
作者: 如果可以    时间: 2023-6-19 09:16
如果不用软件的止盈止损功能,直接在公式里写入止盈止损代码,能实现吗?请教一下这个代码怎么写比较可靠?
作者: 技术010    时间: 2023-6-19 09:19
1、你在软件中写止盈止损,只会对你图表上的理论持仓生效啊,你图表上的理论是多仓,那也只会对多仓触发止盈止损,不会对你实际的空头持仓生效的。
2、你的这种情况本身就是异常的,输出持仓不一致,正常情况下你图表上多仓,那你实际账户也应该是多仓啊。
作者: 如果可以    时间: 2023-6-19 09:22
那就只有使用你们软件自带的止盈止损功能才能平仓对吗?
作者: 技术010    时间: 2023-6-19 09:29
像你这种理论持仓换个实际持仓不一致的情况,要想对实际账户持仓止盈止损,那只能使用这个软件中的止盈止损功能了。或者是使用我们的后台程序化交易,后台程序化交易是直接操作账户持仓的,是可以通过后台的代码对实际账户实现止盈止损。
作者: 如果可以    时间: 2023-6-19 09:42
好的,明白了,辛苦技术了。
作者: 如果可以    时间: 2023-6-28 09:21
技术您好,请问下图表逐k模式下怎么实现同时开多仓和空仓和锁仓?具体代码怎么写?谢谢。
作者: 技术010    时间: 2023-6-28 09:23
这个在图表上无法实现,图表单窗口上只支持单边交易,不支持双向开仓。




欢迎光临 金字塔决策交易系统 (https://www.weistock.com/bbs/) Powered by Discuz! X3.4