(TB)SetGlobalVar和SetTBProfileString函数 pb profilestring

1SetGlobalVar和GetGlobalVar函数可以读写全局变量,但程序的可读性差,老要注释,程序执行速度应该可以,但不能写字符串,读写小数也很麻烦.
SetTBProfileString和GetTBProfileString函数已放弃了参数文件的读写,改用读写数据库Data_Q,速度比读文件系统快,但保存数值也很麻烦,需要转换函数.
请管理员给我综合评估一下,是否要放弃使用全局变量,改用读写数据库.全局变量还要处理网络中断、程序重启等问题,也是麻烦的很。
谢谢了!

不是对性能特别敏感的代码段,能用SetTBProfileString还是用这个比较好。

毕竟这是写到数据库,比SetGlobalVar写在内存中要强。

也可以这样:
如果下次打开交易软件仍然需要的数据,用SetTBProfileString。
下次打开交易软件,就重新计算的数据,用SetGlobalVar。

可以使用TBProfileString的,p_b_yu是指在短线的情况下,全局变量会被清空,和TBProfileString比,较不稳定,所以p_b_yu建议使用TBProfileString

http://bbs.tradeblazer.net/forum.php?mod=viewthread&tid=6919

http://bbs.tradeblazer.net/forum.php?mod=viewthread&tid=12419

2

关于断线重连的全局变量

如下:

If(BarStatus==0)//初始化
{
setGlobalVar(1,InvalidNumeric);
setGlobalVar(0,InvalidNumeric);
SetTBProfileString(Symbol,"sm",Text(0));
SetTBProfileString(Symbol,"buym",Text(0));
SetTBProfileString(Symbol,"bm",Text(0));
SetTBProfileString(Symbol,"sellm",Text(0));
}

断线重连后全局变量是不是又被初始化?
4#发表于 2010-11-316:05:00 |只看该作者
本帖最后由efrog 于 2010-11-3 16:12 编辑

错了!应该:
If( BarStatus==0 &&getglobalvar(0)==InvalidNumeric )
{
//初始化
}
说明:第一个Bar是由于公共变量没有使用过,所以其值为InvalidNumeric,一旦初始化其值就有效了,以后即使遇行情中断,程序再次从BarStatus==0从新执行,由于getglobalvar(0)已经不为InvalidNumeric,所以不会被重新初始化。
上善若水,无欲则刚
1# jsz123

请教SetTBProfileString(Symbol,"sm",Text(0));是什么意思?问题弱了点。不好意思
文韦 发表于 2010-11-20 16:35

Symbol是返回图表的商品名函数,这里用作数据库的名称。
"sm”是关键字名,相当于变量名。
Text(0),将sm设置为"0"。必须转换成字符串,这是TB所谓“数据库”的弱点!

http://bbs.tradeblazer.net/forum.php?mod=viewthread&tid=10933

3

说简单一点:
第一、OpenD(0)在集合竟价的时候会不会把上一个交易日的 Open当做今天的open?
第二、If(BarStatus==0)//初始化setGlobalVar
{
SetTBProfileString(Symbol,"s1",Text(0));
SetTBProfileString(Symbol,"buy",Text(0));
SetTBProfileString(Symbol,"bm",Text(0));
SetTBProfileString(Symbol,"sell",Text(0));
}
可不可以不要?不初始化。可以避免不小心归零,照成反复开平仓。可不可以不要?

发表于 2010-10-20 14:08:00 |只看该作者

1.集合竟价的时候OpenD(0)为昨日的开盘价
2.这个只在图上第一个bar的时候初始化,这段代码不会造成反复开平仓

http://bbs.tradeblazer.net/forum.php?mod=viewthread&tid=10755

4

回复 3# 文韦


使用的是否V4版本?
请在数据库中检查一下是否有20110817这个信息。
文件-数据管理-配置工具
http://bbs.tradeblazer.net/forum.php?mod=viewthread&tid=176575全局变量和序列变量都没能避免重复发单问题,请高手赐教帖前已专门就此问题搜索过论坛的相关帖子,采用全局变量控制发单次数,但重复发单的问题还是没有解决。代码如下:
vars
numerictrn;

if (BarStatus==0) SetGlobalVar(5,1);//或者 if (BarStatus==0) trn=1;

if (BarStatus==2 && GetGlobalVar(5)==1) {//或者 if (BarStatus==2 &&trn==1)
if (AccountDataExist &&a_totalposition>=0)
{
SetGlobalVar(5,0); //或者trn=0;
if (a_totalposition>0)A_SendOrder(enum_sell,enum_exit,1,close-6);
A_SendOrder(enum_sell,enum_entry,1,close-6);
}
}

本意是想空头开仓1手,但实盘运行开仓不止1手。也曾试过采用序列变量的方式控制发单次数,问题依旧。疑问:1、全局变量和序列变量的赋值时间是否很长?以至于在一个tick周期内变量值来不及改变导致重复发单?2、如果不采用延时的方式,有无其他更好的方法避免重复发单?5#发表于 2011-12-2110:11:00 |只看该作者
你的5号全局变量只是在某指定条件下给其赋了值,赋值貌似没有与发单有关。
请叁考F1帮助文档--公式系统---公式的使用----策略进阶----A函数下撤单与全局变量的应用。
http://bbs.tradeblazer.net/forum.php?mod=viewthread&tid=19698&reltid=14929&pre_pos=4&ext=6想在日内交易1分钟周期中,胶、白糖、豆油、PTA、股指,这五个品种必须全部满足(不一定要同时满足)收盘价在各自的MA(CLOSE,60)之上,才同时做多这五个品种,用公式要如何表达?thankU用SetTBProfileString、GetTBProfileString吧
以上品种图表都打开,并用SetTBProfileString记录各个品种条件,供其他品种调用判断。将收盘价大于MA(C,60)条件记录下来
if(close[1]>AverageFC(Close,60))
settbprofilestring(symbol,"ma","true");
获取三个品种的条件,判断是否满足
rucon = gettbprofilesting("ru1205","ma");
tacon = gettbprofilesting("ta1205","ma");
ifcon = gettbprofilesting("if1205","ma");
(TB)SetGlobalVar和SetTBProfileString函数 pb profilestring

if(rucon == "true" && tacon == "true" && ifcon =="true" )
{
buy(1,close);
}
lh948 发表于2012-5-11 14:31
将收盘价大于MA(C,60)条件记录下来
if(close[1]>AverageFC(Close,60))
settbprofilestring(symbol,"ma...


另外在公式前部加上
If(time<0.10) return;
http://bbs.tradeblazer.net/forum.php?mod=viewthread&tid=21531http://bbs.tradeblazer.net/forum.php?mod=viewthread&tid=11981http://bbs.tradeblazer.net/forum.php?mod=viewthread&tid=19163

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/248299.html

更多阅读

C#虚函数抽象函数接口虚函数的运用 虚函数和抽象函数

虚函数(virtual):可由子类继承并重写的函数,后期绑定抽像函数(abstract):规定其非虚子类必须实现的函数,必须被重写(override实现)。抽象类不能被实例化,抽象方法必须是空方法,由派生类去实现它(重载)接口(interface):必须重写(实现接口必须重写接口中

EXCEL表中LEFT和RIGHT函数的用法 left和right函数

在用EXCEL表中的时候,懂得一些常用的函数,会给你的工作带来很大便利。就像上次偶然的机会,听同事说道LEFT和RIGHT函数的用法,还挺有用的。像导出的财务数据,日期的格式都是2010-01-01,但是如果你只需要年月,不需要日期,你可以插入另外一列,适用

转贴 漫谈数学物理方法和特殊函数 特殊儿童物理治疗

原帖比较长,各位耐心。偶然查找泛函分析的资料时,发现了下面的这一个很好的帖子,与各位网友分享。【转贴】漫谈数学物理方法和特殊函数小弟正在攻读吴教授的这本书,从网上看到了一个学习心得,转贴过来和大家商讨。貌似在新浪爱问网上有

EXCEL计算名次的问题两种方法if和rank函数 sql rank 函数

想借款想投资想理财上拍拍贷:http://www.ppdai.com/Register.aspx?userName=liumin2011EXCEL计算名次的问题2011-03-28 01:27在学校工作,要用EXCEL对学生的成绩进行名次计算。但是出现了一些问题,最后使用了比较麻烦的方法才把名次算出

声明:《(TB)SetGlobalVar和SetTBProfileString函数 pb profilestring》为网友亦凡我的心脏分享!如侵犯到您的合法权益请联系我们删除