以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  可变平均线  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=88533)

--  作者:黄金精算师
--  发布时间:2015/12/16 18:36:13
--  可变平均线
我要做一条可变平均线怎么写
MAI:ma (C,可变周期);     //   在IF00图表下运行,可变条件为当C小于3500时为30周期
                                                                     可变条件为当C大于3600时为10周期

--  作者:jinzhe
--  发布时间:2015/12/17 8:41:55
--  
mai:if(c<3500,ma(c,30),ma(c,10));
--  作者:黄金精算师
--  发布时间:2015/12/17 9:12:38
--  
谢谢,单点的变可以了
我是用不同的参数来变的,怎么写呢,比如我,大于  3500用的是30,3600用的是40,3700用的是50,。。。
这样怎么写,就是,有一个变量,这个变量可由外部需要可随便变更的意思


--  作者:jinzhe
--  发布时间:2015/12/17 9:17:43
--  

不管怎么变都要实现类似上面的分段比较

runmode:0;

if close>3500 and close<3600 then maa:=ma(c,5);

if close>3600 and close<3700 then maa:=ma(c,10);

if close>3700 and close<3800 then maa:=ma(c,15);

if close>3800 and close<3900 then maa:=ma(c,20);

 

mal:maa;

 

mal为所求值


--  作者:黄金精算师
--  发布时间:2015/12/17 10:19:21
--  
1、这个显示MA函数在K线模式下不能直接用IF引用,

2、
这样不能用一个计算方式得出一个数值移进,可变量里吗,要是一级级写好了,那就不能随便根据行情需要更换周期,只能用先定好的一些数据了。
MAI:ma (C,可变周期);

--  作者:jinzhe
--  发布时间:2015/12/17 10:28:30
--  

那不是和上面一样的套路

runmode:0;

if close>3500 and close<3600 then m:=5;

if close>3600 and close<3700 then m:=10;

if close>3700 and close<3800 then m:=15;

if close>3800 and close<3900 then m:=20;

 

mmm:ma(c,m);


--  作者:黄金精算师
--  发布时间:2015/12/17 10:30:08
--  
如这样
可变周期:=50;//假如计算结果为50时
MAI:ma (C,可变周期);

--  作者:jinzhe
--  发布时间:2015/12/17 10:31:12
--  
那你这样写有什么意义吗?计算结果必定要是50?
--  作者:黄金精算师
--  发布时间:2015/12/17 10:41:15
--  
1、上面你写的,我这编不过,帮修改一下

2、
是我的有很多数据,不知怎么样移进去
如:

可变周期:=假如C小于3500时为50时结果为50
可变周期:=假如C小于3600时为60时结果为60
可变周期:=假如C运行一小时波动小于10 个点为C+30//就是我这有算法什么的计算结果,不同的变化


MAI:ma (C,可变周期);

--  作者:黄金精算师
--  发布时间:2015/12/17 10:51:02
--  
可以了,谢谢,
昨天才老不行是因为可变周期:后面没有=号,加等号好,可以移进很多数据了
if close>500 and close<3600 then 可变周期:=533+4;
if close>3600 and close<3700 then 可变周期:=30+4;


MAI:ma (C,可变周期);