欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 下列的公式要怎样写

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4728人关注过本帖树形打印复制链接

主题:下列的公式要怎样写

帅哥哟,离线,有人找我吗?
FireScript
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/18 9:12:55    Post IP:180.169.30.6[显示全部帖子]

 1.跨周期可以指定周期,大当当前周期小与当前周期 都可以。
CALLSTOCK('',vtHIGH,6,0);//当前品种日线最高价
CALLSTOCK('',vtHIGH,2,0);//当前品种五分钟K最高价
红色参数是周期参数。
更多内容请参考CALLSTOCK函数说明。

2下单的信号在图表上都是有默认显示图标的。交易声音也有系统的。
声音设置:

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

默认图标:

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看


如果需要代码控制也是可以的。

输出图表需要 绘图函数。在函数列表-绘图函数 分类下有多种绘图函数可供使用:


图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

播放声音:

可以使用  PLAYSOUND( , ) 函数

3.
buy(1,10%,MARKET),PERTRADER;//实际账号可用资金10%开仓
sell(1,100%,MARKET),PERTRADER;//实际持仓全平

4.可以用 ||  或者用or 。都行都一样。DD1 OR DD2 OR DD3,BPK;//这样写可以 不过BPK和很多新交易函数的使用冲突,不能一起用。
[此贴子已经被作者于2019/10/18 9:15:48编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/18 9:13:52    Post IP:180.169.30.6[显示全部帖子]

5. 参考stkind函数。
STKINDI 函数说明里面有范例的。在函数上右键-定位到参考位置 可以查看函数说明。可以复制出来看,软件窗口比较小。
STKINDI('','RSI.RSI1',0,6)  大周期日线
STKINDI('','RSI.RSI1',0,1) 1分钟周期

红色是周期参数 黄色是被调用的模型名称
[此贴子已经被作者于2019/10/18 9:19:50编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/18 9:29:07    Post IP:180.169.30.6[显示全部帖子]

 6. “开仓为收盘价前20秒开仓,但平仓可不可以出信号即时止损或止盈
需要使用固定轮询的交易模式才可以即时触发止盈止损信号,不是代码上操作,需要设置交易模式。

7.规避一些需要注意的地方就行了。
主要有这几条:
1.使用while了循环,并且没有限制好次数,会很容易直接卡死
2.使用了明确标注计算量大的函数。
3.文件读写类的函数 如果频繁操作也会卡顿。

4.代码执行效率不仅仅看代码,也要看所应有的K线数据量。
 



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/18 11:07:14    Post IP:180.169.30.6[显示全部帖子]

 8 。这2种方式几乎没区别的。不过个人倾向于第二种方式去编写代码。

9.平仓反手这种。
在金字塔新交易系统里面是一对2句的代码,意思就是是分开写2句代码的。
比如平多反手

if  平多反手条件 then
begin
sell(holding>0,holding,market);
buyshort(holding=0,1,market);
end

如果是旧系统的代码,那是一样的,也是BPK,SPK这种。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/18 14:25:32    Post IP:180.169.30.6[显示全部帖子]

 1.A1信号是指什么?上面变量里面A1只是一个均线的。 类似的还有A3。或者是指D1-3 变量?
2.“启用一开一平信号过滤” 这个我们没有,意思是以一开一平的方式连续操作,不允许 连续开?连续平?或者你大概解释下,我看看这个是怎么过滤的。
[此贴子已经被作者于2019/10/18 14:34:45编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/18 14:56:51    Post IP:180.169.30.6[显示全部帖子]

"在第二周期结束前一分钟" 是指当前运作周期结束前的1分钟还是 30分钟周期K的结束前一分钟?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/18 16:02:53    Post IP:180.169.30.6[显示全部帖子]

 所以当前交易的周期就是30分钟?然后调用的是60分钟周期。还有就是A3  B3没说是什么周期的哦
[此贴子已经被作者于2019/10/18 16:03:17编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/18 16:52:33    Post IP:180.169.30.6[显示全部帖子]

 我先处理下,大致测试后再发你吧。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/10/22 9:56:37    Post IP:180.169.30.6[显示全部帖子]

因为涉及到跨周期,需要新建2个指标。一个被引用指标,一个当前交易指标。
被引用指标,指标名B:
//这里自行处理下条件A2,B2的具体定义

A2:C>O+2*MINDIFF;
B2:C>O+2*MINDIFF;



交易指标:
A1:C>O;
A3:C>O+3*MINDIFF;

B1:C>O;
B3:C>O+3*MINDIFF;

abb:time0-timetot0(dynainfo(207));//K线结束倒计时间

A1_cd:count(A1,2)=2;
60minA2:stkindi('','S.A2',0,5,0);//调用60分钟周期A2
A3_cd:count(A3,10)=0;


//多头止盈平仓
if A3_cd or  (c-AvGENTERPRICE)/AvGENTERPRICE>0.02 then sell(holding>0,100%,market),PERTRADER;
//空头止损平仓
if (AvGENTERPRICE-c)/AvGENTERPRICE>0.01 then sell(holding>0,100%,market),PERTRADER;

//多头盈利加仓.
if abb<=60 or not(ISLASTBAR) and (c-AvGENTERPRICE)/AvGENTERPRICE>0.01 and A1 then buy(holding>0,10%,market),PERTRADER;


//平空开多
if abb<=60  or not(ISLASTBAR) and A1_cd and 60minA2 then
begin
sellshort(holding<0,holding,market);
buy(holding=0,20%,market),PERTRADER;
end

B1_cd:count(B1,2)=2;
B2_69min:stkindi('','S.B2',0,5,0);//调用60分钟周期B2
B3_cd:count(B3,10)=0;

//空头止盈平仓
if B3_cd or  (AvGENTERPRICE-c)/AvGENTERPRICE>0.02 then sellshort(holding<0,100%,market),PERTRADER;
// 多头止损平仓
if (c-AvGENTERPRICE)/AvGENTERPRICE>0.01 then sellshort(holding<0,100%,market),PERTRADER;

//空头盈利加仓
if abb<=60 or not(ISLASTBAR) and (AvGENTERPRICE-c)/AvGENTERPRICE>0.01 and  B1 then buyshort(holding<0,10%,market),PERTRADER;

//平多开空
if abb<=60  or not(ISLASTBAR) and  B1_cd and B2_69min  then
begin
sell(holding>0,holding,market);
buyshort(holding=0,20%,market),PERTRADER;
end


此外软件交易设置,需要设成固定轮询模式,且固定轮线模式轮询时间不得大于60s。


止盈止损这个要说明下,均为按照按照图表上K线价格变化幅度计算出来的。不是实际账户上的盈亏幅度。

仅供参考,我抽空会测试下逻辑上是否有漏掉,你可以先理一下代码逻辑。如有修改或者变动我会在跟帖下编辑的。

[此贴子已经被作者于2019/10/22 9:57:20编辑过]


命数如织,当如磐石。
 回到顶部