Params
//此处添加参数
Numeric choosedate(20200102);//选股日期
Numeric beginTime(20190101.090000);//开始时间
String dicname1("F1010010006"); //板块节点(科创板)
string base1("stocktrade");//股票池存储标志的块名
String name1("choosecode"); //股票池存储标志的键名
String freq1("1d");//选股周期
String freq2("5m");//交易周期
Numeric hllen(20);//波段参数
Vars
//此处添加变量
Global String myfreq;//数据周期
Global Integer i(0); //循环变量
Global Integer n;//股票池个数
Global Array<String> myArray; //股票池代码
Global Array<String> subarray;//子股票池代码
Global Array<Numeric> zdf;//涨跌幅
Global Array<Integer> id1;//数组下标
Global Array<Integer> id2;//数组下标
Series<Numeric> highline;//高点通道
Series<Numeric> lowline; //低点通道
Global string choosecode;//选股时间
Global string dicsymbol;//基础数据关联标的
Global string dicname; //基础数据的键名
Defs
//写文件函数的定义
Integer LogFile(String str)
{
FileAppend("d://"+FormulaName()+".tbf","["+Text(SystemDateTime())+"] "+ str);
Return 0;
}
Events
OnInit()
{
//从数据库读取子股票池是否有选好的标志 无效值则没有选好,choosedone则表示选好了
choosecode=GetTBProfileString(base1,name1);
LogFile("begin...choosecode="+choosecode);
//根据股票池是否确立,确定行情订阅
if(choosecode==InvalidString)
{
FileDelete("d://"+FormulaName()+".txt");
LogFile("init1...choosecode="+choosecode);
myfreq=freq1;
dicsymbol=dicname1;
dicname="TB_INDUSTRY";
}
Else
{
myfreq=freq2;
dicsymbol="myindustry";
dicname="001";
}
GetDicValue(dicname,dicsymbol,SystemDateTime(),myArray);
n=GetArraySize(myArray);
LogFile("myArray="+TextArray(myArray));
//订阅行情
For i=0 To n-1
{//加载所有成分合约到图层
SubscribeBar(myArray[i],myfreq,beginTime);
}
SetBackBarMaxCount(1);
//SetInitCapital(20000000);
}
OnBar(ArrayRef<Integer> indexs)
{
//选股
if(choosecode==InvalidString)
{
//涨跌幅排序筛选股票
if(date==choosedate)
{
//涨跌幅排序选取跌幅前三名作为股票池
Range[i=0:n-1]
{
zdf[i]=Close/Open-1;
id1[i]=i;
id2[i]=i;
}
SortIds(zdf,id1,id2,0,n-1,True);
for i=0 to 2
{
subarray[i]=myArray[id1[i]];
}
LogFile("subarray="+TextArray(subarray));
SetDicValue("001","myindustry",SystemDateTime(),subarray,True);
LogFile("subarray write done!");
SetTBProfileString(base1,name1,"choosedone!");
ReStart;
}
}
Else //波段交易
{
Range[0:n-1]
{
if(MarketPosition<>1 and High>=highline)
Buy(200,Open);
If(MarketPosition==1 and DateDiff(entrydate,Date)>0 and Low<=lowline)
Sell(0,Open);
}
}
}
这是示例代码,我想问下
1.板块节点如何查询?比如我想要上证50,那么上证50的代码是什么?
2.块名和键名是什么?
数据中心中, 可以查询, 具体需要什么,可以去里面搜索,
