以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  这种上下轨怎么写?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=187870)

--  作者:300qh
--  发布时间:2021/4/17 20:18:16
--  这种上下轨怎么写?
比如以boll指标为例:
input:m(10,1,100,1),n(3,1,100,1);
MID :  MA(CLOSE,M);
UPPER: MID + N*STD(CLOSE,M);
LOWER: MID - N*STD(CLOSE,M);

我想写出只上升的下轨,我只下降的上轨,要怎么编写?参考魔鬼通道效果

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


--  作者:300qh
--  发布时间:2021/4/17 20:19:28
--  
魔鬼通道效果图无法上传,请参考金字塔软件里的
[此贴子已经被作者于2021/4/17 20:21:15编辑过]

--  作者:FireScript
--  发布时间:2021/4/19 9:40:45
--  
 那个魔鬼通道是完全加密的程序,只看这个效果的话,很难推测它这个逻辑是怎样的情况。“只上升的下轨,我只下降的上轨”所以这个你最好能文字描述下。否则看图效果的话,我们很难达成理解上的共识的。
--  作者:300qh
--  发布时间:2021/4/19 13:15:14
--  
当K线开始的时候,画出只下降的上轨,如果上轨的值高于上一日的值,就取上一日上轨,这样就画出只下降的上轨了。
画只上升的下轨,就是如果下轨的值低于上一日的值,就取上一日下轨,这样就画出只上升的下轨了。
直到有一K突破:比如最高价突破上轨,那就开始画只上升的下轨,此时上轨的原始值不变。
待到最低价跌破所画的下轨,就画只下降的上轨,此时下轨的原始值不变。


--  作者:FireScript
--  发布时间:2021/4/19 14:11:55
--  
 你先看下这样:
input:m(10,1,100,1),n(3,1,100,1);
MID :=  MA(CLOSE,M);
UPPER:= MID + N*STD(CLOSE,M);
LOWER:= MID - N*STD(CLOSE,M);

realUPPER:if(UPPER>ref(UPPER,1),ref(UPPER,1),UPPER);
realLOWER:if(LOWER<ref(LOWER,1),ref(LOWER,1),LOWER);

这个轨道是不是你要的。就是原先上下轨得计算逻辑保持不变,但是不作为最终的指标线输出。输出指标线时候,对当前的轨道值和上个K的轨道值进行对比后 再取值。

--  作者:300qh
--  发布时间:2021/4/19 15:20:30
--  
你的写法,显示的效果只是上升的时候往后移了一位。下降的时候保持原值。
那么,如果下降途中反弹的上轨连续超过两根K线,那它就不会保持低值往后移了。下轨反之也是如此。
如下图我手工标示的位置,以水平的形式画出不倒退的上轨和下轨。
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210419151850.png
图片点击可在新窗口打开查看

--  作者:FireScript
--  发布时间:2021/4/19 16:59:18
--  
 这样做。用全局变量纪录。

input:m(10,1,100,1),n(3,1,100,1);
MID :=  MA(CLOSE,M);
UPPER: MID + N*STD(CLOSE,M);
LOWER: MID - N*STD(CLOSE,M);

VARIABLE:x1:=0,x2:=0;
if BARPOS=M then  //M个K之后上下轨才正常有值。
begin
x1:=UPPER;
x2:=LOWER;   
end


if UPPER<x1 then x1:=UPPER;
if LOWER>x2 then x2:=LOWER;


showUPPER:x1;
showLOWER:x2;


上下轨转折地方 需要你提供一个条件。你先看下上面这样上下轨对不对吧。

--  作者:300qh
--  发布时间:2021/4/19 20:26:01
--  
起始的原理有点接近了,但现在的上轨是只是向下,直到屏幕最低,下轨就只是向上直到屏幕最高,中间不会自动变换,
如下图:我的意思是要当后面的行情突破上轨后,上轨x1变回原UPPER值,而下轨LOWER就画x2只向上走的线,
直到行情跌破下轨x2,那么下轨x2就变回以LOWER值,而上轨UPPER开始画x1只向下走的线
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210419202447.png
图片点击可在新窗口打开查看

--  作者:300qh
--  发布时间:2021/4/20 15:06:22
--  
老师还能再改改吗?后面的变换可以用收盘价突破
[此贴子已经被作者于2021/4/20 15:08:13编辑过]

--  作者:FireScript
--  发布时间:2021/4/20 15:34:21
--  
你这里“行情突破上轨”这个如果是用最高价突破上轨 或者是使用最低价突破下轨。这样的话,一个K上是可能同时满足2个突破的。 这样逻辑上就有冲突的。如果硬要处理 后面也会很复杂的。