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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 金字塔2.934测试版发布,欢迎大家积极下载测试

   

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


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

主题:金字塔2.934测试版发布,欢迎大家积极下载测试

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/11/3 23:54:26 [显示全部帖子]

范例3:

 

想达到的效果是:计算每一笔成交量大于200的成交价的10(个单位)的平均值。
意思如下:Input:N(10),V1(200);     定义参数,10和成交量200.
variables:Price(0),MA1(0);     定义变量,价格和平均价。
if Ticks>=V1 then begin
   Price=Close;
   end;    表示条件当成交量>=200时,取收盘价为变量中的价格。
MA1=Average(price,N);    表示变量的含义,即求价格的10日平均值。
plot1(MA1,"MA");   表示画线函数。把这个结果用线表示出来。
 
以上是MC的代码,在旧版金字塔中只能通过VBA自定义函数来协助解决
 

VBA的代码如下:

 

Dim myar '创建一个变量
'创建Array外部对象,变量置为全局的,可以增加效率
Set myar = CreateObject("Stock.Array")

Function Average(Formula,PRICE,VOL,N)
    '系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
   '第一个数据时清空数组
   if Formula.IndexData = 0 then
      myar.RemoveAll
   end if
   if vol >= 200 then
      myar.AddBack price
   end if
   '超过10个的删除第一个
   if myar.count > N then
      myar.RemoveAt 0
   end if
   Average = myar.Average
End Function

 

金字塔PEL代码只要一句

RUNMODE:0;
MA1:AVERAGE(close,vol,10);

 


 

现在新版金字塔简单了

runmode : 0;

input: n(10), v1(200,1,2000,10);
VARIABLE: price[]=0; //声明一个空数组

if vol > v1 THEN
 price := c;
 
ma1:ma(price,n);

[此贴子已经被作者于2012-11-3 23:55:11编辑过]


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/11/14 23:14:46 [显示全部帖子]

你的需求可以通过在公式编辑器中使用单步跟踪的方式来解决



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部