自编程序如下:
//中间变量
input:p(26,1,1000,30),s(12,1,800,20),m(9,1,1000,20),SS(1,1,1000,1);//参数自动输入
input:A(5,1,300,1);//参数自动输入
MA5:=MA(CLOSE,A); //定义5日移动平均线
角度:= ATAN ((MA20/REF(MA20,22)-1)*100)*180/3.14159;//定义角度
//角度上升
角度30向上: Cross(角度,10);//这个方法无输出
角度45向上: Cross(角度,45););//这个方法无输出
角度60向上: Cross(角度,60););//这个方法无输出
角度90向上: 60 < 角度 <= 90;);//这个方法不管5日均线的角度如何变化,始终输出为1,没有返回0值
//角度下降
角度-30向下: 0 > 角度 >= -30;//这个方法不管5日均线的角度如何变化,始终输出为1,没有返回0值
角度-45向下: -30 > 角度 >= -45;//这个方法不管5日均线的角度如何变化,始终输出为1,没有返回0值
角度-60向下: -45 > 角度 >= -60;//这个方法不管5日均线的角度如何变化,始终输出为1,没有返回0值
角度-90向下: -60 > 角度 >= -90;//这个方法不管5日均线的角度如何变化,始终输出为1,没有返回0值
结果见附图——角度问题
调试结果也是如此。
请问老师此程序的问题出错在哪,如何修改此程序才能正确在程序中反应当时的5日均线的角度。
我的设计意图是:
1、当价格在5日均线上方,并且5日均线角度向上大于30度,下一个K线的开盘价买进多单,当均线角度线大于45度,加仓,当均线角度大于60度,减仓,当均线角度大于90度全部平仓。
2、当价格在5日均线下方,并且5日均线角度向上小于—30度,下一个K线的开盘价开空单。当均线角度线小于—45度,加仓,当均线角度小于—60度,减仓,当均线角度小于—90度全部平仓。
序号 | 均线 | 均线值 | MA/REF(MA,1) | MA/REF(MA,1) -1 | [MA/REF(MA,1) -1] | 计算出的均线弧度 | 角度(°) | 满足条件 | |
1 | MA1 | 2469.8 | 0.999757 | -0.000243 | -0.02 | -0.024283 | -1.3913 | 0 > 角度 >= -30 | |
2 | MA1,1 | 2470.4 | 0.999838 | -0.000162 | -0.02 | -0.016188 | -0.9275 | 0 > 角度 >= -30 | |
3 | MA1,2 | 2470.8 | 0.999757 | -0.000243 | -0.02 | -0.024273 | -1.3907 | 0 > 角度 >= -30 | |
4 | MA1,3 | 2471.4 | 1.000081 | 0.000081 | 0.01 | 0.008093 | 0.4637 | 0<角度<=30; | |
5 | MA1,4 | 2471.2 | 1.000243 | 0.000243 | 0.02 | 0.024281 | 1.3912 | 0<角度<=30; | |
6 | MA1,5 | 2470.6 | 1.000243 | 0.000243 | 0.02 | 0.024287 | 1.3915 | 0<角度<=30; | |
7 | MA1,6 | 2470 | 1.000324 | 0.000324 | 0.03 | 0.032388 | 1.8557 | 0<角度<=30; | |
8 | MA1,7 | 2469.2 | 1.000243 | 0.000243 | 0.02 | 0.024300 | 1.3923 | 0<角度<=30; | |
9 | MA1,8 | 2468.6 | 0.999838 | -0.000162 | -0.02 | -0.016199 | -0.9282 | 0 > 角度 >= -30 | |
10 | MA1,9 | 2469 | 0.999757 | -0.000243 | -0.02 | -0.024291 | -1.3918 | 0 > 角度 >= -30 | |
11 | MA1,10 | 2469.6 | 1.000081 | 0.000081 | 0.01 | 0.008099 | 0.4640 | 0<角度<=30; | |
12 | MA1,11 | 2469.4 | 1.000081 | 0.000081 | 0.01 | 0.008100 | 0.4641 | 0<角度<=30; | |
13 | MA1,12 | 2469.2 | 0.999838 | -0.000162 | -0.02 | -0.016196 | -0.9279 | 0 > 角度 >= -30 | |
14 | MA1,13 | 2469.6 | 0.999514 | -0.000486 | -0.05 | -0.048529 | -2.7805 | 0 > 角度 >= -30 | |
15 | MA1,14 | 2470.8 | 0.999676 | -0.000324 | -0.03 | -0.032356 | -1.8539 | 0 > 角度 >= -30 | |
16 | MA1,15 | 2471.6 | 1.000243 | 0.000243 | 0.02 | 0.024277 | 1.3910 | 0<角度<=30; | |
17 | MA1,16 | 2471 | 1.003004 | 0.003004 | 0.30 | 0.291799 | 16.7189 | 0<角度<=30; | |
18 | MA1,17 | 2463.6 | 1.000406 | 0.000406 | 0.04 | 0.040585 | 2.3254 | 0<角度<=30; | |
19 | MA1,18 | 2462.6 | 0.999026 | -0.000974 | -0.10 | -0.097057 | -5.5610 | 0 > 角度 >= -30 | |
20 | MA1,19 | 2465 | 1.000568 | 0.000568 | 0.06 | 0.056766 | 3.2525 | 0<角度<=30; | |
21 | MA1,20 | 2463.6 | 1.000569 | 0.000569 | 0.06 | 0.056799 | 3.2543 | 0<角度<=30; | |
21 | MA1,20 | 2462.2 | |||||||
对一段5日均线进行了手工计算,结果如上,是有变化的。 | |||||||||
首先用这种方法是算不出角度的,金字塔内不好算角度
其次不太懂你的思路
请问老师那角度用什么方法来算,麻烦帮写个计算角度的程序,谢谢。