Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:求助,跨周期改写的方法

1楼
幸运60 发表于:2020/10/19 14:05:02
老师,跨周期调用很慢,改写成本周期的
如,1分钟调用10分钟的波动力
==================================

TRA:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TRA,3);


TRA0:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,0)-CALLSTOCK(STKLABEL,VTlow,18,0)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,0),1)-CALLSTOCK(STKLABEL,VThigh,18,0))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,0),1)-CALLSTOCK(STKLABEL,VTlow,18,0))); 
TRA1:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,-1)-CALLSTOCK(STKLABEL,VTlow,18,-1)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VThigh,18,-1))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VTlow,18,-1)));
TRA2:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,-2)-CALLSTOCK(STKLABEL,VTlow,18,-2)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-2),1)-CALLSTOCK(STKLABEL,VThigh,18,-2))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-2),1)-CALLSTOCK(STKLABEL,VTlow,18,-2)));


ATRS:=(TRA0+TRA1+TRA2)/3;



经过这样改写,在1分钟周期上,轨道并不完全相同,请老师帮忙修改下


2楼
FireScript 发表于:2020/10/19 14:16:28
 你这个需求描述的太笼统了。“轨道并不完全相同” 就这样我是无法处理的。我完全不清楚怎么改写你的代码的。
3楼
幸运60 发表于:2020/10/19 14:24:23

TRA:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TRA,3);

up:今天开盘价+(W1/10)*ATR;
down:今天开盘价-(W1/10)*ATR;
==================
上面为在1分钟周期内跨周期调用10分钟的轨道

想把波动力改为,下面代码,直接在1分钟周期内显示,不用跨周期调用,谢谢
TRA0:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,0)-CALLSTOCK(STKLABEL,VTlow,18,0)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,0),1)-CALLSTOCK(STKLABEL,VThigh,18,0))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,0),1)-CALLSTOCK(STKLABEL,VTlow,18,0))); 
TRA1:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,-1)-CALLSTOCK(STKLABEL,VTlow,18,-1)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VThigh,18,-1))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VTlow,18,-1)));
TRA2:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,-2)-CALLSTOCK(STKLABEL,VTlow,18,-2)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-2),1)-CALLSTOCK(STKLABEL,VThigh,18,-2))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-2),1)-CALLSTOCK(STKLABEL,VTlow,18,-2)));
ATRS:=(TRA0+TRA1+TRA2)/3;

4楼
FireScript 发表于:2020/10/19 14:39:03
TRA0:MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,0)-CALLSTOCK(STKLABEL,VTlow,18,0)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VThigh,18,0))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VTlow,18,0)));

下面的REf 你没有进行处理的。后面的TRA1,TRA2 也要相应处理下。在-1基础上变化为-2,-3

TRA:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
5楼
幸运60 发表于:2020/10/19 14:55:55
老师,能完全写到和调用的跨周期一致吗?就是完全相同?
6楼
FireScript 发表于:2020/10/19 15:02:32
 不对 还要改下。你源代码里面怎么还带了个ref 没注意到。要去掉。

CALLSTOCK(STKLABEL,VTclose,18,-1) 和 ref(CALLSTOCK(STKLABEL,VTclose,18,0) ,1) 不是等效的。ref是基于当前周期的。

下面这样就行了:
TRA0:MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,0)-CALLSTOCK(STKLABEL,VTlow,18,0)),ABS(CALLSTOCK(STKLABEL,VTclose,18,-1)-CALLSTOCK(STKLABEL,VThigh,18,0))),ABS(CALLSTOCK(STKLABEL,VTclose,18,-1)-CALLSTOCK(STKLABEL,VTlow,18,0)));
 我本地测试和跨周期调用过来的是一致的。
7楼
幸运60 发表于:2020/10/19 15:17:05
谢谢,老师,老师,牛逼
共7 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.01563 s, 3 queries.