1.整体思路:开拓者负责将开仓信号写入配置文件,金字塔复杂读取配置文件并下单
2.开拓者写入信号简单实例:
Params
String Path("D:\\test.ini");
Numeric Lots(1);
Numeric Offset(1);
Vars
String Section;
String Key;
Numeric th;
Numeric tt;
Numeric TimeOffset(5);
Begin
Commentary("x="+Text(BarInterval));
Commentary(text(date));
Commentary(Text(time*10000));
Commentary("H="+Text(Hour));
Commentary("M="+Text(Minute));
TimeOffset=BarInterval;
//--------------------金字塔和开拓者时间差-------------------------------//
If ((Minute+TimeOffset)>=60)
{
th=Hour+1;
tt=mod(Minute+TimeOffset, 60);
}Else
{
th=Hour;
tt=Minute+TimeOffset;
}
Commentary("th="+Text(th)+ " tt="+Text(tt));
if (th>9)
{
Key=Text(th);
}else
{
Key=Key+"0"+Text(th);
}
if (tt>9)
{
Key=Key+Text(tt);
}else
{
Key=Key+"0"+Text(tt);
}
Commentary("Key="+Key);
//--------------------金字塔和开拓者时间差-------------------------------//
Section="1"+Right(Text(Date), 6);
If( O>C[1] and MarketPosition<=0)
{
Buy(Lots, O+Offset);
}Else If(O<C[1] and MarketPosition>=0)
{
SellShort(Lots, O-Offset);
}
If (barstatus==2)
{
SetTBProfileString2File(Path, Section, Key+"_Lots", Text(CurrentContracts));
SetTBProfileString2File(Path, Section, Key+"_Price", Text(EntryPrice));
}
Commentary("Lots="+Text(CurrentContracts)+" price="+Text(EntryPrice));
End
3.金字塔实现读取信号代码
offset:=0;
path:='d:\test.ini';
logpath:='d:\log.txt';
section:= NUMTOSTR(date,0);
key:=NUMTOSTR(time/100, 0);
key:=if(strlen(key)=3, '0'&key, key);
VARIABLE: processedbar=0;
//DRAWTEXT(true, high, key);
strlots:=GETINIFILESTRING(path, section, strcat(key,'_Lots'));
strprice:=GETINIFILESTRING(path, section, strcat(key, '_Price'));
//DEBUGOUT('test %f', 1);
//msg:='lots='&strlots&' price='&strprice;
//DEBUGOUT(msg, 1);
if strlen(strprice)<1 and processedbar!=BARPOS then begin
DRAWICON(true, high, 1);
DEBUGFILE(logpath,'!!!%.2f no signal', time);
processedbar:=BARPOS;
end else begin
lots:=strtonum(strlots);
price:= strtonum(strprice);
DEBUGOUT('lots=%.2f', lots);
DEBUGOUT('price=%.2f', price);
//平多
if lots<=0 and THolding>0 then begin
TSell(O>0, THolding, LMT, C-offset),ORDERQUEUE;
DEBUGFILE(logpath,'!!!%.2f cover long', C-offset);
Drawtext(True, H, 'cover long');
end
//平空
if lots>=0 and THolding<0 then begin
TSellshort(O>0, abs(THolding), LMT, C+offset),ORDERQUEUE;
DEBUGFILE(logpath,'!!!%.2f cover short ', C+offset);
Drawtext(True, H, 'cover short');
end
//开多
if lots>0 and THolding2=0 then begin
//TBuy(O>0, lots, LMT, C+offset);
//,ignorecheckprice;
TBuy(1,1, MKT),ORDERQUEUE;
DEBUGFILE(logpath,'!!!%.2f open long', price+offset);
Drawtext(True, L, 'open long');
end
//开空
if lots<0 and THolding2=0 then BEGIN
//TBuyshort(O>0, abs(lots), LMT, C-offset);
//,ignorecheckprice;
TBuyShort(1, 1, MKT),ORDERQUEUE;
DEBUGFILE(logpath,'!!!%.2f open short', price-offset);
Drawtext(True, L, 'open short');
end
end
xLots: lots, linethick0;
xPrice: price, linethick0;
XTHolding: THolding, linethick0;
XPBars: processedbar, linethick0;
4.配置文件test.ini实例
[1170717]
0905_Lots=-1
0905_Price=3590
0910_Lots=-1
0910_Price=3624
0915_Lots=-1
0915_Price=3624
0920_Lots=1
0920_Price=3621
5.问题: 金字塔后台并没有实现下单,但是开仓后面的那段写日志已经记录到日志文件了
2017-07-21 13:51:32.509 【后台】RB10 TBuy 第 0 行出现信号
2017-07-21 13:51:32.510 【后台】RB10 TBuy 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:RB10
2017-07-21 13:51:32.510 【后台】下单已发送
2017-07-21 13:51:32.512 【后台】RB10 运行结束
2017-07-21 13:51:32.512 【下单】RB10 价0.000000 量1 买卖0 类型1 开平0 账户618666 Formula 1
2017-07-21 13:51:32.513 【下单】已提交,订单ID :-1298974976
2017-07-21 13:51:32.527 【后台】AG12 TBuy 第 0 行出现信号
2017-07-21 13:51:32.528 【后台】AG12 TBuy 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:AG12
2017-07-21 13:51:32.529 【后台】下单已发送
2017-07-21 13:51:32.530 【后台】AG12 运行结束
2017-07-21 13:51:32.530 【下单】AG12 价0.000000 量1 买卖0 类型1 开平0 账户618666 Formula 1
2017-07-21 13:51:32.531 【下单】已提交,订单ID :-1298974975
2017-07-21 13:51:32.534 【指令】收到回报指令 ID = -1298974976
2017-07-21 13:51:32.547 【回报】618666 : RB10 - 已报单 1 价格:3547 开 买
2017-07-21 13:51:32.548 【指令】收到回报指令 ID = -1298974976
2017-07-21 13:51:32.549 【指令】收到回报指令 ID = -1298974976
2017-07-21 13:51:32.552 【指令】收到成交回报指令 ORDERID = -1298974976
2017-07-21 13:51:32.568 【回报】618666 : rb1710 - 已成交 1 价格:3544 开 买
2017-07-21 13:51:32.569 【回报】618666 : rb1710 - 全部成交 1
2017-07-21 13:51:32.570 【指令】收到回报指令 ID = -1298974975
2017-07-21 13:51:32.582 【回报】618666 : AG12 - 已报单 1 价格:3887.00 开 买
2017-07-21 13:51:32.583 【指令】收到回报指令 ID = -1298974975
2017-07-21 13:51:32.584 【指令】收到回报指令 ID = -1298974975
2017-07-21 13:51:32.586 【指令】收到成交回报指令 ORDERID = -1298974975
2017-07-21 13:51:32.604 【回报】618666 : ag1712 - 已成交 1 价格:3884.00 开 买
2017-07-21 13:51:32.604 【回报】618666 : ag1712 - 全部成交 1
2017-07-21 13:51:33.509 【后台】RB10 运行结束
2017-07-21 13:51:33.531 【后台】AG12 运行结束
2017-07-21 13:51:34.384 【图表】AG12 运行完毕
2017-07-21 13:51:34.515 【后台】RB10 运行结束
2017-07-21 13:51:34.538 【后台】AG12 运行结束
2017-07-21 13:51:34.845 【图表】AG12 运行完毕
2017-07-21 13:51:35.320 【图表】AG12 运行完毕
2017-07-21 13:51:35.516 【后台】RB10 运行结束
2017-07-21 13:51:35.532 【后台】AG12 运行结束
2017-07-21 13:51:35.793 【图表】AG12 运行完毕
2017-07-21 13:51:36.412 【图表】AG12 运行完毕
2017-07-21 13:51:36.512 【后台】RB10 运行结束
2017-07-21 13:51:36.528 【后台】AG12 运行结束
2017-07-21 13:51:36.902 【图表】AG12 运行完毕
2017-07-21 13:51:37.511 【后台】RB10 运行结束
2017-07-21 13:51:37.530 【后台】AG12 运行结束
2017-07-21 13:51:37.904 【图表】AG12 运行完毕
2017-07-21 13:51:38.299 【图表】AG12 运行完毕
2017-07-21 13:51:38.510 【后台】RB10 运行结束
2017-07-21 13:51:38.526 【后台】AG12 运行结束
2017-07-21 13:51:38.902 【图表】AG12 运行完毕
2017-07-21 13:51:39.399 【图表】AG12 运行完毕
2017-07-21 13:51:39.509 【后台】RB10 运行结束
2017-07-21 13:51:39.526 【后台】AG12 运行结束
2017-07-21 13:51:39.873 【图表】AG12 运行完毕
2017-07-21 13:51:40.331 【图表】AG12 运行完毕
2017-07-21 13:51:40.511 【后台】RB10 运行结束
2017-07-21 13:51:40.528 【后台】AG12 运行结束
2017-07-21 13:51:40.803 【图表】AG12 运行完毕
2017-07-21 13:51:41.278 【图表】AG12 运行完毕
2017-07-21 13:51:41.512 【后台】RB10 运行结束
2017-07-21 13:51:41.530 【后台】AG12 运行结束
2017-07-21 13:51:41.896 【图表】AG12 运行完毕
2017-07-21 13:51:42.512 【后台】RB10 运行结束
2017-07-21 13:51:42.531 【后台】AG12 运行结束
2017-07-21 13:51:42.832 【图表】AG12 运行完毕
2017-07-21 13:51:43.304 【图表】AG12 运行完毕
2017-07-21 13:51:43.505 【后台】RB10 运行结束
2017-07-21 13:51:43.523 【后台】AG12 运行结束
2017-07-21 13:51:44.401 【图表】AG12 运行完毕
2017-07-21 13:51:44.512 【后台】RB10 运行结束
2017-07-21 13:51:44.530 【后台】AG12 运行结束
2017-07-21 13:51:44.887 【图表】AG12 运行完毕
2017-07-21 13:51:45.364 【图表】AG12 运行完毕
2017-07-21 13:51:45.512 【后台】RB10 运行结束
2017-07-21 13:51:45.530 【后台】AG12 运行结束
2017-07-21 13:51:45.850 【图表】AG12 运行完毕
2017-07-21 13:51:46.505 【后台】RB10 运行结束
2017-07-21 13:51:46.522 【后台】AG12 运行结束
2017-07-21 13:51:46.752 【图表】AG12 运行完毕
2017-07-21 13:51:47.420 【图表】AG12 运行完毕
2017-07-21 13:51:47.510 【后台】RB10 运行结束
2017-07-21 13:51:47.531 【后台】AG12 运行结束
2017-07-21 13:51:48.343 【图表】AG12 运行完毕
2017-07-21 13:51:48.509 【后台】RB10 运行结束
2017-07-21 13:51:48.527 【后台】AG12 运行结束
2017-07-21 13:51:49.283 【图表】AG12 运行完毕
2017-07-21 13:51:49.511 【后台】RB10 运行结束
2017-07-21 13:51:49.530 【后台】AG12 运行结束
2017-07-21 13:51:49.913 【图表】AG12 运行完毕
2017-07-21 13:51:50.401 【图表】AG12 运行完毕
2017-07-21 13:51:50.511 【后台】RB10 运行结束
2017-07-21 13:51:50.531 【后台】AG12 运行结束
2017-07-21 13:51:50.858 【图表】AG12 运行完毕
2017-07-21 13:51:51.327 【图表】AG12 运行完毕
2017-07-21 13:51:51.509 【后台】RB10 运行结束
2017-07-21 13:51:51.526 【后台】AG12 运行结束
2017-07-21 13:51:52.405 【图表】AG12 运行完毕
2017-07-21 13:51:52.513 【后台】RB10 运行结束
2017-07-21 13:51:52.531 【后台】AG12 运行结束
2017-07-21 13:51:52.867 【图表】AG12 运行完毕
2017-07-21 13:51:53.345 【图表】AG12 运行完毕
2017-07-21 13:51:53.508 【后台】RB10 运行结束
2017-07-21 13:51:53.527 【后台】AG12 运行结束
2017-07-21 13:51:54.255 【图表】AG12 运行完毕
2017-07-21 13:51:54.511 【后台】RB10 运行结束
2017-07-21 13:51:54.529 【后台】AG12 运行结束
2017-07-21 13:51:54.922 【图表】AG12 运行完毕
2017-07-21 13:51:55.498 【图表】AG12 运行完毕
2017-07-21 13:51:55.531 【后台】RB10 运行结束
2017-07-21 13:51:55.549 【后台】AG12 运行结束
2017-07-21 13:51:55.863 【图表】AG12 运行完毕
2017-07-21 13:51:56.306 【图表】AG12 运行完毕
2017-07-21 13:51:56.511 【后台】RB10 运行结束
2017-07-21 13:51:56.527 【后台】AG12 运行结束
2017-07-21 13:51:57.512 【后台】RB10 运行结束
2017-07-21 13:51:57.530 【后台】AG12 运行结束
2017-07-21 13:51:58.342 【图表】AG12 运行完毕
2017-07-21 13:51:58.532 【后台】RB10 运行结束
2017-07-21 13:51:58.554 【后台】AG12 运行结束
2017-07-21 13:51:59.511 【后台】RB10 TBuy 第 0 行出现信号
2017-07-21 13:51:59.512 【后台】RB10 TBuy 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:RB10
2017-07-21 13:51:59.513 【后台】下单已发送
2017-07-21 13:51:59.514 【后台】RB10 运行结束
2017-07-21 13:51:59.515 【下单】RB10 价0.000000 量1 买卖0 类型1 开平0 账户618666 Formula 1
2017-07-21 13:51:59.515 【下单】已提交,订单ID :-1298974974
2017-07-21 13:51:59.528 【指令】收到回报指令 ID = -1298974974
2017-07-21 13:51:59.539 【回报】618666 : RB10 - 已报单 1 价格:3544 开 买
2017-07-21 13:51:59.540 【后台】AG12 运行结束
2017-07-21 13:51:59.540 【指令】收到回报指令 ID = -1298974974
2017-07-21 13:51:59.543 【指令】收到回报指令 ID = -1298974974
2017-07-21 13:51:59.547 【指令】收到成交回报指令 ORDERID = -1298974974
2017-07-21 13:51:59.563 【回报】618666 : rb1710 - 已成交 1 价格:3541 开 买
2017-07-21 13:51:59.564 【回报】618666 : rb1710 - 全部成交 1
2017-07-21 13:52:00.881 2017.07.21 13:52:00【图表】框架:Technic 触发下单 SELLSHORT 品种 AG12 下单K线 2017.07.21 13:53:00 公式:Fishing_Processor_v1_1 窗格ID:0 代码行:32
2017-07-21 13:52:00.882 【图表】模型下单 1
2017-07-21 13:52:00.882 【图表】下单系数调整后 手数:1
2017-07-21 13:52:00.883 【图表】实际持仓 0
2017-07-21 13:52:00.884 2017.07.21 13:52:00【图表】框架:Technic 触发下单 BUY 品种 AG12 下单K线 2017.07.21 13:53:00 公式:Fishing_Processor_v1_1 窗格ID:0 代码行:39
2017-07-21 13:52:00.906 【图表】模型下单 1
2017-07-21 13:52:00.907 【图表】下单系数调整后 手数:1
2017-07-21 13:52:00.927 【图表】直接下单
2017-07-21 13:52:00.944 【图表】AG12 运行完毕
2017-07-21 13:52:00.945 【图表】AG12 运行完毕
2017-07-21 13:52:00.945 【图表】AG12 运行完毕
2017-07-21 13:52:00.946 【下单】AG12 价3885.000000 量1 买卖0 类型0 开平0 账户618666 Formula 1
2017-07-21 13:52:00.946 【下单】已提交,订单ID :-1298974973
2017-07-21 13:52:00.957 【指令】收到回报指令 ID = -1298974973
2017-07-21 13:52:00.972 【回报】618666 : AG12 - 已报单 1 价格:3885.00 开 买
2017-07-21 13:52:00.973 【指令】收到回报指令 ID = -1298974973
2017-07-21 13:52:00.975 【指令】收到回报指令 ID = -1298974973
2017-07-21 13:52:00.977 【指令】收到成交回报指令 ORDERID = -1298974973
2017-07-21 13:52:00.995 【回报】618666 : ag1712 - 已成交 1 价格:3884.00 开 买
2017-07-21 13:52:00.996 【回报】618666 : ag1712 - 全部成交 1
2017-07-21 13:52:01.076 【后台】RB10 运行结束
2017-07-21 13:52:01.082 【后台】AG12 TBuy 第 0 行出现信号
2017-07-21 13:52:01.082 【后台】AG12 TBuy 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:AG12
2017-07-21 13:52:01.083 【后台】下单已发送
2017-07-21 13:52:01.084 【后台】AG12 运行结束
2017-07-21 13:52:01.085 【下单】AG12 价0.000000 量1 买卖0 类型1 开平0 账户618666 Formula 1
2017-07-21 13:52:01.086 【下单】已提交,订单ID :-1298974972
2017-07-21 13:52:01.118 【指令】收到回报指令 ID = -1298974972
2017-07-21 13:52:01.131 【回报】618666 : AG12 - 已报单 1 价格:3887.00 开 买
2017-07-21 13:52:01.132 【指令】收到回报指令 ID = -1298974972
2017-07-21 13:52:01.133 【指令】收到回报指令 ID = -1298974972
2017-07-21 13:52:01.134 【指令】收到成交回报指令 ORDERID = -1298974972
2017-07-21 13:52:01.149 【回报】618666 : ag1712 - 已成交 1 价格:3884.00 开 买
2017-07-21 13:52:01.150 【回报】618666 : ag1712 - 全部成交 1
2017-07-21 13:52:01.511 【后台】RB10 运行结束
2017-07-21 13:52:01.529 【后台】AG12 运行结束
2017-07-21 13:52:02.423 【图表】AG12 运行完毕
2017-07-21 13:52:02.512 【后台】RB10 运行结束
2017-07-21 13:52:02.534 【后台】AG12 运行结束
2017-07-21 13:52:03.360 【图表】AG12 运行完毕
2017-07-21 13:52:03.509 【后台】RB10 运行结束
2017-07-21 13:52:03.527 【后台】AG12 运行结束
2017-07-21 13:52:03.835 【图表】AG12 运行完毕
2017-07-21 13:52:04.299 【图表】AG12 运行完毕
2017-07-21 13:52:05.386 【图表】AG12 运行完毕
2017-07-21 13:52:05.885 【图表】AG12 运行完毕
2017-07-21 13:52:06.329 【图表】AG12 运行完毕
2017-07-21 13:52:07.279 【图表】AG12 运行完毕
2017-07-21 13:52:07.923 【图表】AG12 运行完毕
2017-07-21 13:52:08.376 【图表】AG12 运行完毕
2017-07-21 13:52:08.836 【图表】AG12 运行完毕
2017-07-21 13:52:09.308 【图表】AG12 运行完毕
2017-07-21 13:52:09.750 【图表】AG12 运行完毕
2017-07-21 13:52:10.400 【图表】AG12 运行完毕
2017-07-21 13:52:10.880 【图表】AG12 运行完毕
2017-07-21 13:52:11.800 【图表】AG12 运行完毕
2017-07-21 13:52:12.907 【图表】AG12 运行完毕
2017-07-21 13:52:21.957 【下单】RB10 价3538.000000 量8 买卖1 类型0 开平2 账户618666 Formula 0
2017-07-21 13:52:21.958 【下单】已提交,订单ID :-1298974971
2017-07-21 13:52:21.959 【下单】AG12 价3883.000000 量182 买卖1 类型0 开平2 账户618666 Formula 0
2017-07-21 13:52:21.959 【下单】已提交,订单ID :-1298974970
2017-07-21 13:52:22.003 【指令】收到回报指令 ID = -1298974971
2017-07-21 13:52:22.017 【回报】618666 : RB10 - 已报单 8 价格:3538 平 卖
2017-07-21 13:52:22.017 【指令】收到回报指令 ID = -1298974971
2017-07-21 13:52:22.019 【指令】收到回报指令 ID = -1298974971
2017-07-21 13:52:22.021 【指令】收到回报指令 ID = -1298974970
2017-07-21 13:52:22.035 【回报】618666 : AG12 - 已报单 182 价格:3883.00 平 卖
2017-07-21 13:52:22.036 【指令】收到回报指令 ID = -1298974971
2017-07-21 13:52:22.038 【指令】收到成交回报指令 ORDERID = -1298974971
2017-07-21 13:52:22.038 【指令】平仓计量 EBuy:0 ESell:4
2017-07-21 13:52:22.054 【回报】618666 : rb1710 - 已成交 4 价格:3538 平 卖
2017-07-21 13:52:22.056 【指令】收到成交回报指令 ORDERID = -1298974971
2017-07-21 13:52:22.057 【指令】平仓计量 EBuy:0 ESell:0
2017-07-21 13:52:22.088 【回报】618666 : rb1710 - 已成交 4 价格:3538 平 卖
2017-07-21 13:52:22.089 【回报】618666 : rb1710 - 全部成交 8
2017-07-21 13:52:22.090 【指令】收到回报指令 ID = -1298974970
2017-07-21 13:52:22.097 【指令】收到回报指令 ID = -1298974970
2017-07-21 13:52:22.101 【指令】收到成交回报指令 ORDERID = -1298974970
2017-07-21 13:52:22.101 【指令】平仓计量 EBuy:0 ESell:91
2017-07-21 13:52:22.114 【回报】618666 : ag1712 - 已成交 91 价格:3883.00 平 卖
2017-07-21 13:52:22.115 【指令】收到回报指令 ID = -1298974970
2017-07-21 13:52:22.117 【指令】收到成交回报指令 ORDERID = -1298974970
2017-07-21 13:52:22.118 【指令】平仓计量 EBuy:0 ESell:0
2017-07-21 13:52:22.135 【回报】618666 : ag1712 - 已成交 91 价格:3883.00 平 卖
2017-07-21 13:52:22.135 【回报】618666 : ag1712 - 全部成交 182
2017-07-21 13:54:58.339 【后台】 启动后台程式化交易
2017-07-21 13:56:20.443 【后台】 启动后台程式化交易
2017-07-21 13:57:26.813 【后台】 启动后台程式化交易
2017-07-21 14:01:25.641 【后台】 启动后台程式化交易
2017-07-21 14:02:23.818 【后台】 启动后台程式化交易
2017-07-21 14:07:24.184 【后台】 启动后台程式化交易