以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=162229)

--  作者:hj007s
--  发布时间:2018/3/21 14:11:20
--  请教个赋值问题
我想请问,我如何去写这样一段逻辑

当时间在11点到11点30之间,如果CLOSE为当日最高点 OR (HIGH-CLOSE)/CLOSE<0.02,THEN 将最高点H赋值为当日H,否则之前的H为当日(日K)的最高点。
这个语言麻烦老师写个代码,然后我调试的时候调取分时图的时候可以debug,
用DRAWICON标记一下。

谢谢老师
[此贴子已经被作者于2018/3/21 14:12:17编辑过]

--  作者:FireScript
--  发布时间:2018/3/21 14:34:39
--  

1.你什么周期的。日线或者较大的周期的处理和小周期不一样

2.“高点H赋值为当日H”  这里,实现不了。不能用代码修改K线数据。


--  作者:hj007s
--  发布时间:2018/3/21 15:02:54
--  
我用日线周期。

那老师用变量来代替可以么。
假设我取3天的高点,日线级别,
REF(H,3)和REF(H,2)是按照历史的,那么我设置一个变量,根据上面的问题,取11点到11点30的最高点赋值为变量K,
当REF(H,3)>REF(H,2)>K时,我DRAWICON,在图表上标记一下,
麻烦老师写个Demo,非常感谢!

--  作者:yukizzc
--  发布时间:2018/3/21 15:08:18
--  

H_3:=callstock(\'\',vthigh,6,-3);

H_2=callstock(\'\',vthigh,6,-2);

K:=if(time>110000 and time <113000,hhv(h,barslast(time=110000)),999999999);

if H_3>H_2 and H_2>K and time>110000 and time <113000 then DRAWICON();

 

具体这个标记部分您自行完成


--  作者:hj007s
--  发布时间:2018/3/21 17:35:46
--  

H_3:=callstock(\'\',vthigh,6,-3);

H_2=callstock(\'\',vthigh,6,-2);

K:=if(time>110000 and time <113000,hhv(h,barslast(time=110000)),999999999);

if H_3>H_2 and H_2>K and time>110000 and time <113000 then DRAWICON();

 

具体这个标记部分您自行完成



老师,您编写的代码有问题,
我用国中水务600187   2017/04/20 最高价 6.37   21日最高价5.93,而24日11点——11点30之前的C最高收5.7,而当日最高收5.82,那么并没有K赋值成5.82,。


--  作者:FireScript
--  发布时间:2018/3/22 9:11:18
--  

日线周期下time函数的判断会失效。你这个在日线下有问题的。

你用小周期去运行这段代码才行。

 

 

 


--  作者:hj007s
--  发布时间:2018/3/22 13:31:12
--  
那请问,如何在日线周期下实现?
求个代码,谢谢~~~

--  作者:hj007s
--  发布时间:2018/3/22 13:37:17
--  
我用小周期的试了一下,然后确实会有K的赋值,但是,过了那个限定的时间点,11点到11:30,K又重新赋值回99999,
我希望的是,我在11点到11点30之间,做个判断,然后赋值为K,在当日的日线级别的K线上就定值了,

--  作者:FireScript
--  发布时间:2018/3/22 14:03:39
--  

如果想要记住那个值的话。可以把K值用全局变量保存下。

 

variable:s:=0;

 

H_3:=callstock(\'\',vthigh,6,-3);

H_2=callstock(\'\',vthigh,6,-2);

 

if  time>110000 and time <113000 then
begin
s:=hhv(h,barslast(time=110000))
end

 

if H_3>H_2 and H_2>s and time>110000 and time <113000 then DRAWICON();

 

showS:s;


--  作者:hj007s
--  发布时间:2018/3/22 14:18:00
--  
老师你那边有显示???
我这边没有,我想到一个解决方案,
是这样。
函数1
A:VALUEWHEN(TIME<110000,H);
B:VALUEWHEN(TIME>110000 AND TIME<113000,H);
C1:IF(TIME>113000 AND A>B,A,B);

函数2
A:STKINDIEX(\'\' ,\'函数1.C1\' ,0 ,1 ,0 ,100 );    //这边我加载1分钟K线,在函数1那儿,函数1的C1是可以返回我需要的值
B:REF(H,2)>REF(H,1);
Cond:B>A;
DRAWICON(Cond,L,10,2);

但是我这样写,在加载到日K线上,并没有符合的Cond=1的情况,但是在日K线上可以随便找出符合的条件,请问老师,是哪引用错了么?