以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]求TB代码转换  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=8912)

--  作者:jiaoyizhe
--  发布时间:2011/11/11 10:14:56
--  [求助]求TB代码转换

以下是一个在交易开拓者上的部分模型代码,想转换到金字塔上来,

由于对金字塔函数还不熟练,总是出不来应有的效果,主要卡在CC\\HH\\LL\\OO几个变量上,请高手帮忙,谢谢!

 

Begin

 

  CC=CloseD[1];                //昨天收盘价
  HH=Highest(high,m);       //M周期最高价(包括当前周期)
  LL=Lowest(low,m);          //M周期最高价(包括当前周期)

  oo=OpenD[0];                   //今天开盘价


……省略


 

End

[此贴子已经被作者于2011-11-11 10:21:15编辑过]

--  作者:26327756l
--  发布时间:2011/11/11 10:20:27
--  

Params
Numeric m(60);
 用下面的代替试试

申明并设置参数
语法:
INPUT:PNAME1(DFT,MIN,MAX,STEP),PNAME2(DFT,MIN,MAX,STEP)...;
PNAME表示参数名, DFT表示缺省值
MIN表示最小值,MAX表示最大值
STEP表示优化步长,除DEFAULT外都可省略
例如:
INPUT:N(5), M(10,1,100,2);
表示定义参数N,缺省值为5
定义参数M,缺省值为10,最小值为1,最大值为100,优化步长为2
所属函数组:控制语句

[此贴子已经被作者于2011-11-11 10:21:47编辑过]

--  作者:26327756l
--  发布时间:2011/11/11 10:21:21
--  

Vars
Numeric CC;用下面的代替试试

申明并初始化变量;variable 为全局变量申明语句,一般用在逐K线计算模式下声明一个全局变量或者在序列模式和逐K线模式下声明一个内部数组。序列模式下variable申明的序列变量会被强制转换为常数,故与普通的常数变量是没有区别的,因此序列模式下的序列变量不要使用variable进行申明。
语法:
VARIABLE:VARNAME1=INITVALUE1,VARNAME2=INITVALUE2...;
例如:
VARIABLE:X=1,Y=CLOSE,ARR[10]=0,SARR[5]=\'STR\';
表示定义常数变量X并初始化为1,
申明序列变量Y并初始化为收盘价,
申明含10个浮点数的数组并全部初始化为0
申明含5个字符串的数组并都初始化为\'STR\'
所属函数组:控制语句


--  作者:jiaoyizhe
--  发布时间:2011/11/11 10:22:39
--  
做了下简化编辑 主要问题就是上面几个变量的转换问题
--  作者:jiaoyizhe
--  发布时间:2011/11/11 10:26:22
--  

CC:=VALUEWHEN(DATE<>REF(DATE,1),REF(C,1));    //昨天收盘价
NN:=BARSLAST(DATE<>REF(DATE,1) )+1;
HH:=REF(HHV(HIGH,m),m);                     //m周期最高价
LL:=REF(LLV(LOW,m),m);                      //m周期最低价

 

-----------------------------------------------------------------------------


CC:=VALUEWHEN(DATE<>REF(DATE,1),REF(C,1));            //昨天收盘价
HH:=REF(HHV(H,m),1));                                //m周期最高价 
LL:=REF(LLV(L,m),1));                                //m周期最低价

 

-----------------------------------------------------------------------------


CC:=VALUEWHEN(DATE<>REF(DATE,1),REF(C,1));            //昨天收盘价
HH:=VALUEWHEN(DATE<>REF(DATE,1),REF(HHV(H,m),1));    //m周期最高价 
LL:=VALUEWHEN(DATE<>REF(DATE,1),REF(LLV(L,m),1));    //m周期最低价

 

我写了上面三中表达,不知哪个对,好象都不对。

请指点。


--  作者:26327756l
--  发布时间:2011/11/11 10:30:01
--  

//昨天收盘价
//m周期最高价

//m周期最低价

这些问题你应改在论坛里搜搜。


--  作者:jiaoyizhe
--  发布时间:2011/11/11 10:52:15
--  

CC:= VALUEWHEN(DATE<>REF(DATE,1),REF(CLOSE,1));
HH:= ref(hhv(H,68),1);
LL:= ref(hhv(L,68),1);

 

这样没错吧 用在15分钟周期上


--  作者:fly
--  发布时间:2011/11/11 10:59:22
--  

CC:= VALUEWHEN(DATE<>REF(DATE,1),REF(CLOSE,1)); //昨天收盘价
HH:= ref(hhv(H,68),1);
LL:= ref(hhv(L,68),1);

Dayopen:=valuewhen(date<>ref(date,1),o);       //当日开盘价

 

对,写的很对.注意代码编写要在英文状态下


--  作者:jiaoyizhe
--  发布时间:2011/11/11 11:38:58
--  

可惜 效果图信号显示还是不一样

百思不得其解