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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]重新计算MA指标的算法该怎么写

   

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


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

主题:[求助]重新计算MA指标的算法该怎么写

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


加好友 发短信
等级:论坛游民 帖子:108 积分:433 威望:0 精华:0 注册:2012/3/22 14:42:31
[求助]重新计算MA指标的算法该怎么写  发帖心情 Post By:2012/4/15 15:26:38    Post IP:115.239.160.22[只看该作者]

MA(X,N)简单算术平均
求X的N日移动平均值,不分轻重,平均算。算法是:
(X1+X2+X3+…..+Xn)/N

公式该怎么写?

 回到顶部
帅哥哟,离线,有人找我吗?
rushtaotao
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 czt
等级:蜘蛛侠 帖子:1445 积分:6114 威望:0 精华:3 注册:2012/1/16 10:31:19
  发帖心情 Post By:2012/4/15 20:57:05    Post IP:58.41.25.67[只看该作者]

你的意思是要原代码?指数平滑移动平均?

没大能明白您这目的是什么?

 


 回到顶部
帅哥哟,离线,有人找我吗?
admin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2012/4/15 21:45:09    Post IP:114.92.103.4[只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
myhcow
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:108 积分:433 威望:0 精华:0 注册:2012/3/22 14:42:31
  发帖心情 Post By:2012/4/16 9:55:45    Post IP:115.239.160.22[只看该作者]

我要在MIN1里计算周期超过3000的MA值,用于后台交易。
MA公式重新写过有用吗?

 回到顶部
帅哥哟,离线,有人找我吗?
myhcow
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:108 积分:433 威望:0 精华:0 注册:2012/3/22 14:42:31
  发帖心情 Post By:2012/4/16 10:01:19    Post IP:115.239.160.22[只看该作者]

完整的包括止损,移动止赢交易范例  图片点击可在新窗口打开查看 Post By:2010-7-17 17:54:45 [只看该作者

{

代码工作在图表自动交易模式下

当出现开仓后,开仓价格相比,最大损失超过2%止损

当出现盈利后,与最大盈利价格相比,回落到60%幅度后止赢离场

}

 

MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);

variable:maxprofit=0;//有仓位时最大获利幅度

//开仓
IF CROSS(MA1,MA2) THEN
BEGIN
 BUY(1,1);
 maxprofit:=0;
END

//平仓
SELL(CROSS(MA2,MA1),0);

//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;

if holding > 0 and enterbars > 0 then
begin
 win:=(c-enterprice)/enterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win; 
  
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

if holding < 0 and enterbars > 0 then
begin
 win:=(enterprice-c)/enterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
  
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

//出现浮动亏损比如2%平仓
止损:SELL(win < -2,0);
 
//出现最高盈利后,回落到盈利的60%平仓出场
止赢:SELL(win2 >= 60 and openprofit > 0, 0);





这段模板在后台交易中该怎么改?

[此贴子已经被作者于2012-4-16 10:01:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
rushtaotao
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 czt
等级:蜘蛛侠 帖子:1445 积分:6114 威望:0 精华:3 注册:2012/1/16 10:31:19
  发帖心情 Post By:2012/4/16 10:12:03    Post IP:58.246.57.26[只看该作者]

//仅供参考

 

MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);

variable:maxprofit=0;//有仓位时最大获利幅度

//开仓
IF CROSS(MA1,MA2) THEN
BEGIN
 tBUY(1,1);
 maxprofit:=0;
END

//平仓
tSELL(CROSS(MA2,MA1),0);

//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;

if tholding > 0 and topenbar > 0 then
begin
 win:=(c-tenterprice)/tenterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
 
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

if tholding < 0 and topenbar > 0 then
begin
 win:=(tenterprice-c)/tenterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
 
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

//出现浮动亏损比如2%平仓
止损:tSELL(win < -2,0);
 
//出现最高盈利后,回落到盈利的60%平仓出场
止赢:tSELL(win2 >= 60 and topenprofit > 0, 0);


 回到顶部
帅哥哟,离线,有人找我吗?
myhcow
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:108 积分:433 威望:0 精华:0 注册:2012/3/22 14:42:31
  发帖心情 Post By:2012/4/16 10:35:47    Post IP:115.239.160.22[只看该作者]

以下是引用rushtaotao在2012-4-16 10:12:03的发言:

//仅供参考

 

MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);

variable:maxprofit=0;//有仓位时最大获利幅度

//开仓
IF CROSS(MA1,MA2) THEN
BEGIN
 tBUY(1,1);
 maxprofit:=0;
END

//平仓
tSELL(CROSS(MA2,MA1),0);

//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;

if tholding > 0 and topenbar > 0 then
begin
 win:=(c-tenterprice)/tenterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
 
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

if tholding < 0 and topenbar > 0 then
begin
 win:=(tenterprice-c)/tenterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
 
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

//出现浮动亏损比如2%平仓
止损:tSELL(win < -2,0);
 
//出现最高盈利后,回落到盈利的60%平仓出场
止赢:tSELL(win2 >= 60 and topenprofit > 0, 0);







我的模型是中长线策略,持仓周期较长,如果程序重新启动,maxprofit这个变量是不是从启动后开始计算?


比如说上个交易日有新高,而今天跌了,我每天9点钟启动程序,maxprofit这个变量还有昨天的高点数据吗?

[此贴子已经被作者于2012-4-16 10:36:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
rushtaotao
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 czt
等级:蜘蛛侠 帖子:1445 积分:6114 威望:0 精华:3 注册:2012/1/16 10:31:19
  发帖心情 Post By:2012/4/16 10:41:32    Post IP:58.246.57.26[只看该作者]

是的  你用的这个变量是VARIABLE,这个变量再每次运行程序的时候会进行一次初始化

 回到顶部
帅哥哟,离线,有人找我吗?
rushtaotao
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 czt
等级:蜘蛛侠 帖子:1445 积分:6114 威望:0 精华:3 注册:2012/1/16 10:31:19
  发帖心情 Post By:2012/4/16 10:43:34    Post IP:58.246.57.26[只看该作者]

您问题的解决办法,以下希望对您有帮助

在公式中声明的变量不论是否在循环语句中,当每次执行一次循环检测时,都会被初始化一次,如果需要变量只初始化一次,那么需要使用全局变量数据库保存变量状态,请参考:“EXTGBDATA”,“EXTGBDATASET”两个函数的使用。

http://www.weistock.com/wtdq.htm#_Toc317669796


 回到顶部
帅哥哟,离线,有人找我吗?
myhcow
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:108 积分:433 威望:0 精华:0 注册:2012/3/22 14:42:31
  发帖心情 Post By:2012/4/16 10:53:54    Post IP:115.239.160.22[只看该作者]

谢谢,我研究下。

 回到顶部
总数 13 1 2 下一页