开拓者期货期权程序化系统交易论坛

标题: 求助!文华的一句代码翻译! [打印本页]

作者: sqltxt    时间: 2011-6-22 19:45:23     标题: 求助!文华的一句代码翻译!

文华源码
X2:=REF(X1,BARSLAST(X1));
其中X1,X2为Numeric变量

这句想了好久,翻译遇到很大问题,非常郁闷,向斑竹求助!
尝试使用NthCon函数,发现它的返回值是Bool,解决不了我的问题。
本人刚转到开拓者不久,不胜感激!
作者: sqltxt    时间: 2011-6-23 09:50:05

自己顶一下,很着急呢~
想弃文华不用啊
作者: lh948    时间: 2011-6-23 10:24:50

n=nthcon(x1,1);
X2 = X1[n];
作者: sqltxt    时间: 2011-6-23 11:05:18

[attach]4718[/attach]
作者: sqltxt    时间: 2011-6-23 11:07:02

回复 3# lh948


    报错了!
我的分析:nthcon返回值是bool型的
               而这里的n,x1,x2都需要是Numeric
作者: lh948    时间: 2011-6-23 11:15:11

nthcon第一个参数是一个条件,x1是一个值,并不是一个条件,如何判断?
作者: sqltxt    时间: 2011-6-23 13:08:20

回复 6# lh948

在我的程序里
X1取值只有三个:1,0,-1 分别表示这次的开仓方向是 :开多,不开仓,开空
X2 作用是取得上次的开仓方向
程序的目的是对X1和X2,进行比较是不是相同
只好用白话了,程序说不明白
作者: lh948    时间: 2011-6-23 13:34:02

回复 7# sqltxt


有函数,Marketposition就可以直接判断了。
请到帮助文档中搜索查阅Marketposition
作者: sqltxt    时间: 2011-6-23 13:48:08

回复 8# lh948


sorry!我说错了,是突破方向不是开仓方向。
不涉及到持仓,只是看下上次朝哪个方向突破!
作者: lh948    时间: 2011-6-23 14:56:38

将x1定义为序列变量,突破后,给x1赋值,其他情况就x1=x1[1];

if(突破)
   x1=..;
else
   x1=x1[1];
作者: sqltxt    时间: 2011-6-24 15:32:41

回复 10# lh948


    如何用代码区分 本次突破和上次突破 方向不一样?
作者: lh948    时间: 2011-6-24 16:48:43

接上面代码
if(突破2)
    x1 = ...;
else
    x1 = x1[1];
if(x1!=x1[1])这次突破x1与上次突破x1[1]
作者: freetiger    时间: 2011-6-25 09:13:51

学习了!mark
作者: sqltxt    时间: 2011-6-25 12:53:58

回复 12# lh948


问题解决了!    非常感谢!




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2