交易开拓者代码学习各种买卖指令及实例
开拓者源码:日内高低点突破交易系统
![开拓者源码:日内高低点突破交易系统](https://img.taocdn.com/s3/m/0556359e0242a8956bece4e6.png)
开拓者源码:日内高低点突破交易系统TB源码:日内高低点突破交易系统------------------------------------------// 简称: todayHLCross // 名称: // 类别: 交易指令 // 类型: 其他 // 输出://------------------------------------------------------------------------ /* 日内开盘区高低//------------------------------------------------------------------------// 简称: todayHLCross// 名称:// 类别: 交易指令// 类型: 其他// 输出://------------------------------------------------------------------------/*日内开盘区高低点机械突破系统*/ParamsNumeric maxLots(1);//单次开仓手数Numeric maxTrad(4);//最大交易次数Numeric minSpt(15);//最小开仓间隔bar数Numeric splitRate(3); //交易滑点和佣金Numeric tradBegin(930); //开仓时间Numeric tradEnd(1430); //开仓截止时间Numeric closeTime(1457); //bar的时间超过此值后平仓,一分钟交易=1457VarsNumeric splitDot; //交易滑点Bool bc(False);//开多条件Bool sc(False);//开空条件Numeric tradePrice(0);NumericSeries hh;NumericSeries ll;Begin splitDot=splitRate*MinMove(); If(BarStatus==0) { hh=High; ll=Low; Return; } if(Day !=Day[1]) { hh=High; ll=Low; } Else If(Time0.0001*tradBegin) { if(Highhh[1]) hh=High; Else hh=hh[1]; if(Lowll[BeginsplitDot=splitRate*MinMove();If(BarStatus==0){hh=High;ll=Low;Return;}if(Day !=Day[1]){hh=High;ll=Low; }ElseIf(Time<0.0001*tradBegin){if(High>hh[1]) hh=High; Else hh=hh[1];if(Low<ll[1]) ll=Low; Else ll=ll[1];}Elseif(Time>=0.0001*tradBegin And Time<=0.1500){hh=hh[1];ll=ll[1];//穿越模式bc=CrossOver(Open,hh) Or CrossOver(High,hh) Or CrossOver(Low,hh) Or CrossOver(Close,hh) ;sc=CrossUnder(Open,ll) Or CrossUnder(High,ll) Or CrossUnder(Low,ll) Or CrossUnder(Close,ll);if(MarketPosition == 0){// 当前无仓,开始建立多头if(bc){if(BarStatus==2) tradePric e= Q_AskPrice +splitDot; Else tradePrice=hh+splitDot;Buy(maxLots,tradePrice);}Else// 当前无仓,开始建立空头If(sc ){if(BarStatus==2)tradePrice= Q_BidPrice -splitDot; Else tradePrice=ll-splitDot;SellShort(maxLots,tradePrice);}//----------------------------------------------------------------------------- Else { if(MarketPosition 0 ) { // 当前多仓,加仓多头 if(bc And BarsSinceLastEntryminSpt) { if(BarStatus==2) tradePrice=//-----------------------------------------------------------------------------Else{if(MarketPosition > 0 ){// 当前多仓,加仓多头if(bc And BarsSinceLastEntry>minSpt){if(BarStatus==2) tradePrice= Q_AskPrice +splitDot; Else tradePrice=hh+splitDot;Buy(maxLots,tradePrice);}// 当前多头,要求反转为空头if(sc){if(BarStatus==2)tradePri ce= Q_BidPrice -splitDot;Else tradePrice=ll-splitDot;// 平多头开空SellShort(maxLots,tradeP rice);}//持仓处理,止损止盈平仓//........}//-----------------------------------------------------------------------------------------------Elseif(MarketPosition < 0 ){// 当前空仓,加空头If(sc And BarsSinceLastEntry>minSpt){if(BarStatus==2)tradePri ce= Q_BidPrice -splitDot; Else tradePrice=ll-splitDot;SellShort(maxLots,tradePrice);}// 当前空头,要求反转为多头if(bc){if(BarStatus==2) tradePrice= Q_AskPrice +splitDot;Else tradePrice=hh+splitDot;//平空头,开多Buy(maxLots,tradePrice);}//持仓处理,止损止盈平仓//........}}}End//------------------------------------------------------------------------}。
开拓者代码 学习各种买卖指令及实例
![开拓者代码 学习各种买卖指令及实例](https://img.taocdn.com/s3/m/ae88cddf5022aaea998f0f3e.png)
Buy说明产生一个多头建仓操作。
语法 Buy(Numeric Share=0,Numeric Price=0,Bool Delay=False)参数 Share 买入数量,为整型值,默认为使用系统设置参数;Price 买入价格,为浮点数,默认=0时为使用现价(非最后Bar为Close);Delay 买入动作是否延迟,默认为当前Bar发送委托,当Delay=True,在下一个Bar执行。
备注产生一个多头建仓操作,无返回值,该函数仅支持交易指令。
该函数仅用于多头建仓,其处理规则如下:如果当前持仓状态为持平,即MarketPosition = 0 时,该函数按照参数进行多头建仓。
如果当前持仓状态为空仓,即MarketPosition = -1 时,该函数首先平掉所有空仓,达到持平的状态,然后再按照参数进行多头建仓。
如果当前持仓状态为多仓,即MarketPosition = 1 时,该函数将继续建仓,但具体是否能够成功建仓要取决于系统中关于连续建仓的设置,以及资金,最大持仓量等限制。
示例在MarketPosition=0的情况下:Buy(50,10.2,1) 表示用10.2的价格买入50张合约,延迟到下一个Bar发送委托。
Buy(10,Close) 表示用当前Bar收盘价买入10张合约,马上发送委托。
Buy(5,0) 表示用现价买入5张合约,马上发送委托。
BuyToCover说明产生一个空头平仓操作。
语法 BuyToCover(Numeric Share=0,Numeric Price=0,Bool Delay=False)参数 Share 买入数量,为整型值,默认为平掉当前所有持仓;Price 买入价格,为浮点数,默认=0时为使用现价(非最后Bar为Close);Delay 买入动作是否延迟,默认为当前Bar发送委托,当Delay=True,在下一个Bar执行。
备注产生一个空头平仓操作,无返回值,该函数仅支持交易指令。
交易开拓者(TB)编程初级篇
![交易开拓者(TB)编程初级篇](https://img.taocdn.com/s3/m/50f051e919e8b8f67c1cb97c.png)
交易开拓者(TB)期货程序化交易编程本文仅是写给完全不懂编程的朋友的,仅是最基本的入门资料。
TB里面代码执行1,代码从第一根K线开始执行,一直到最后一根K线;2,在每一根K线上,代码都是从第一行开始执行,一直到最后一行;我们就写个输出每日的收盘价的例子;打开TB,在左边的TB公式里面,点击新建技术指标,然后在出来的公式编辑器里面输入BeginEnd注意,除了参数和变量定义外,所有的代码都必须包含在Begin和End之间我们再在Begin和End之间输入一些代码,完整的就是:BeginFileAppend("c:\\a.log",Text(Year)+"年"+Text(Month)+"月"+Text(Day)+"日的收盘价等于");FileAppend("C:\\a.log",Text(Close));End我们再说说这两行代码是什么意思File就是文件,Append就是添加,现在明白了吧FileAppend就是添加一个文件,文件名是什么呢?就是你后面写的a.log,这个文件的路径在哪里呢?就是c:\\a.log 里面的C盘,且在这个文件里面添加一行东西,这行东西的内容就是你后面所写的Text(Year)+"年"+Text(Month)+"月"+Text(Day)+"日的收盘价等于"当然,如果这个文件已经存在,他就不会添加文件了,仅仅在这个文件的后面添加一行上面你写的内容好了,再看看Text,Text的意思就是把那些不是字符串的东西如数字啊,等变成字符串.而Year,Month,Day就代表了正在执行你写的代码的那一根K线的年,月,日,年月日是数字,我们当然要用Text把它搞成字符串CloseK线的收盘价啊,如果代码执行到最后的那根K线我们点公式编辑器上面的工具栏的第五个按钮(打勾的那个东西),校验保存公式,稍微等一下,就OK了我们在回到K线图里面,TB把K线图叫做超级图表在K线图里面右键,选择商品设置,然后吧里面的样本数由默认的300改成5,意思是让在超级图表里面仅仅显示5条K线,点确定后,你就看到在K线图里面只显示了5跟K线,当然现在代码还不能被执行,因为我们现在还需要把我们刚刚所写的那个指标加到K线图上面才能被执行的我们上面说了,我们这个例子仅仅是把每日的收盘价写到文件里面去啊,那么我们找一找文件在什么地方咯? FileAppend("c:\\a.log",很明显,文件是在c盘的,文件的名字是a.log好了,我们到c盘找到a.log文件,双击打开,我们就会看到下面的内容:2007年9月24日的收盘价等于672802007年9月25日的收盘价等于678002007年9月26日的收盘价等于671602007年9月27日的收盘价等于673002007年9月28日的收盘价等于68020我们现在来分析下:首先你写的代码在第一根K线上执行,先执行第一行代码:FileAppend("c:\\a.log",Text(Year)+"年"+Text(Month)+"月"+Text(Day)+"日的收盘价等于");这行代码就输出了第一根K线的年,月,日,就在a.log文件里输出成"2007年9月24日的收盘价等于"然后执行第二行代码:FileAppend("C:\\a.log",Text(Close));折行代码把第一根K线的收盘价输出到a.log文件里面,于是就输出了"67280"好了,代码在第一根K线上执行完毕,于是再转到第二根K线,再执行第一行代码,再执行第二行代码.........我一直非常愿意帮助客户们解答在编程中的难点,但是却不大愿意帮助客户写完整的公式策略。
交易开拓者使用教程
![交易开拓者使用教程](https://img.taocdn.com/s3/m/18b8444249649b6648d747d5.png)
目录第一章 (4)概述 (4)1.1 TradeBlazer语言特点 (5)1.2功能特色 (5)1.3 安装TradeBlazer (6)1.3.1 软件下载 (6)1.3.2 软件卸载 (7)第二章 (8)TradeBlazer可视化集成开发环境 (8)2.1启动TradeBlazer (9)2.1.1 TradeBlazer系统登陆 (9)2.1.2 连接交易账户 (10)2.2TradeBlazer的用户界面 (11)2.2.1 系统菜单 (12)2.2.2 工具栏 (14)2.2.3 工作室 (15)2.2.4 工作区 (16)2.2.5 面板 (17)2.2.6 桌面 (18)2.2.7 窗口特性 (18)2.2.8 我的键盘 (19)2.2.9 跑马灯 (20)2.2.10 状态栏 (20)2.2.11 消息中心 (21)2.2.12 系统设置 (23)2.2.13 数据维护 (26)2.2.14 导入和导出 (29)2.2.15 图像存储和打印 (30)2.2.16操作小技巧 (31)第三章 (32)TradeBlazer视窗模块 (32)3.1 行情报价 (33)3.1.1 行情报价主界面 (33)3.1.2 行情报价工具栏 (34)3.1.3 行情报价右键菜单 (34)3.1.4 商品选择和字段选择 (34)3.2 分时图 (36)3.2.1 分时图主界面 (36)3.2.2 分时图分时图表 (37)3.2.3 分时图盆口明细 (37)3.2.4 分时图分笔成交 (38)3.2.5 添加“开平仓性质” (38)3.3.1超级图表主界面 (39)3.3.2 超级图表工具栏 (40)3.3.3 超级图表菜单 (41)3.3.4 页面设置 (45)3.3.5 商品设置 (48)3.3.6 技术分析设置 (50)3.3.7 交易指令设置 (51)3.3.8自动交易 (52)3.3.9 交易设置 (52)3.3.10 讯号设置 (54)3.4 TB浏览器 (55)第四章 (56)交易系统 (56)4.1 交易师 (57)4.2触发单 (59)4.3快速平仓 (60)4.4止损获利 (61)4.5批量下单 (62)4.6组合下单 (64)4.7预埋单 (65)4.8交易助手 (66)4.9帐户管理 (67)4.10帐户分析 (70)第五章 (72)TradeBlazer公式基础 (72)5.1公式简介 (73)5.2 数据 (73)5.3 命名规则 (77)5.4 语句 (77)5.5 保留字 (78)5.6 操作符 (80)5.7 表达式 (83)5.8 使用注释 (84)5.9 系统函数 (84)5.10 标点符号 (84)5.11 控制语句 (85)5.12 参数 (91)5.13 变量 (93)5.14 数据回溯 (96)第六章 (99)TradeBlazer公式应用 (99)6.1 用户函数 (100)6.2 用户字段 (104)6.4 K线型态 (108)6.5 特征走势 (109)6.6 交易指令 (111)6.7公式报警 (115)6.8公式管理器 (115)6.9新建公式 (116)6.10公式编辑器 (117)6.11公式属性 (119)6.12公式导入导出 (120)6.13交易策略 (122)附录 (127)TradeBlazer公式范例 (127)1. TradeBlazer公式的HelloWorld! (127)2.如何在交易开拓者中编写技术指标? (128)3. 一个简单顺势交易系统的例子 (132)4. 一个文华交易系统的移植例子 (134)5. 一个简单交易系统的自动交易测试 (137)第一章概述欢迎使用交易开拓者。
量化经典RangeBreak交易系统模型源代码一
![量化经典RangeBreak交易系统模型源代码一](https://img.taocdn.com/s3/m/faf259ced05abe23482fb4daa58da0116c171fd9.png)
量化经典RangeBreak交易系统模型源代码⼀RangeBreak系统交易模型源代码--开拓者版本RangeBreak系统交易模型是著名的交易系统,这⾥把他解析出来,供⼤家参考学习之⽤,这是个⽇内交易系统,收盘⼀定平仓;RangeBreak基于昨⽇振幅和今⽇开盘价的关系。
昨⽇振幅=昨⽇最⾼价-昨⽇最低价上轨 = 今⽇开盘价+N*昨⽇振幅下轨 = 今⽇开盘价-N*昨⽇振幅当价格突破上轨,买⼊开仓。
当价格跌穿下轨,卖出开仓。
RangeBreak指标ParamsNumeric PercentOfRange(0.3);VarsNumeric DayOpen;Numeric preDayRange;Numeric UpperBand;Numeric LowerBand;BeginDayOpen = OpenD(0);preDayRange = HighD(1) - LowD(1);UpperBand = DayOpen + preDayRange*PercentOfRange; LowerBand = DayOpen - preDayRange*PercentOfRange; PlotNumeric("UpperBand",UpperBand);PlotNumeric("LowerBand",LowerBand);PlotNumeric("MidLine",DayOpen);EndRBS_V1ParamsNumeric PercentOfRange(0.3);Numeric ExitOnCloseMins(14.59);VarsNumeric DayOpen;Numeric preDayRange;Numeric UpperBand;Numeric LowerBand;Numeric MyPrice;BeginDayOpen = OpenD(0);preDayRange = HighD(1) - LowD(1);UpperBand = DayOpen + preDayRange*PercentOfRange; LowerBand = DayOpen - preDayRange*PercentOfRange; If(MarketPosition!=1 && High>=UpperBand){MyPrice = UpperBand;If(Open > MyPrice) MyPrice = Open;Buy(1,MyPrice);Return;}If(MarketPosition!=-1 && Low<=LowerBand){MyPrice = LowerBand;If(Open < MyPrice) MyPrice = Open;SellShort(1,MyPrice);Return;// 收盘平仓If(Time >=ExitOnCloseMins/100){Sell(1,Open);BuyToCover(1,Open);}SetExitOnClose;End必须考虑的特殊情况如果前⼀⽇涨停或跌停,则会出现范围很⼩。
交易开拓者三级止损代码
![交易开拓者三级止损代码](https://img.taocdn.com/s3/m/7a6d0322bb4cf7ec4bfed040.png)
交易开拓者三级止损代码VarsNumeric MinPoint; // 一个最小变动单位,也就是一跳Numeric MyEntryPrice; // 开仓价格,本例是开仓均价,也可根据需要设置为某次入场的价格Numeric TrailingStart1(50); // 跟踪止损启动设置1Numeric TrailingStart2(80); // 跟踪止损启动设置2Numeric TrailingStop1(30); // 跟踪止损设置1Numeric TrailingStop2(20); // 跟踪止损设置2Numeric StopLossSet(50); // 止损设置Numeric MyExitPrice; // 平仓价格NumericSeries HighestAfterEntry; // 开仓后出现的最高价NumericSeries LowestAfterEntry; // 开仓后出现的最低价 Begin...If(BarsSinceEntry == 0) // 条件满足:开仓Bar{HighestAfterEntry = Close;LowestAfterEntry = Close; // 赋初值为当前最新价格If(MarketPosition <> 0) // 有持仓时执行以下代码{HighestAfterEntry = Max(HighestAfterEntry,AvgEntryPrice); // 开仓Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntryLowestAfterEntry = Min(LowestAfterEntry,AvgEntryPrice); // 开仓Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry}}Else // 非开仓Bar时进行以下运算{ HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar 的最高点,用于下一个Bar的跟踪止损判断LowestAfterEntry = Min(LowestAfterEntry,Low); // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断}Commentary("HighestAfterEntry = "+Text(HighestAfterEntry));Commentary("LowestAfterEntry = "+Text(LowestAfterEntry));MinPoint = MinMove*PriceScale;MyEntryPrice = AvgEntryPrice;If(MarketPosition == 1 And BarsSinceEntry >= 1) // 有多仓的情况{If(HighestAfterEntry[1] >= MyEntryPrice + TrailingStart2*MinPoint) // 第二级跟踪止损的条件表达式{If(Low <= HighestAfterEntry[1] - TrailingStop2*MinPoint){MyExitPrice = HighestAfterEntry[1] - TrailingStop2*MinPoint;If(Open < MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价即跳空触发,则用开盘价代替Sell(0,MyExitPrice);}}Else If(HighestAfterEntry[1] >= MyEntryPrice +TrailingStart1*MinPoint)// 第一级跟踪止损的条件表达式{If(Low <= HighestAfterEntry[1] - TrailingStop1*MinPoint){MyExitPrice = HighestAfterEntry[1] - TrailingStop1*MinPoint;If(Open < MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价即跳空触发,则用开盘价代替Sell(0,MyExitPrice);} }Else If(Low <= MyEntryPrice - StopLossSet*MinPoint) //可以在这里写上初始的止损处理{MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;If(Open < MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价即跳空触发,则用开盘价代替Sell(0,MyExitPrice);}}Else If(MarketPosition == -1 And BarsSinceEntry >= 1) // 有空仓的情况{If(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart2*MinPoint) // 第二级跟踪止损的条件表达式{If(High >= LowestAfterEntry[1] + TrailingStop2*MinPoint){MyExitPrice = LowestAfterEntry[1] + TrailingStop2*MinPoint;If(Open > MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价即跳空触发,则用开盘价代替BuyToCover(0,MyExitPrice);}}Else If(LowestAfterEntry[1] <= MyEntryPrice -TrailingStart1*MinPoint)//第一级跟踪止损的条件表达式{If(High >= LowestAfterEntry[1] + TrailingStop1*MinPoint){MyExitPrice = LowestAfterEntry[1] + TrailingStop1*MinPoint;If(Open > MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价即跳空触发,则用开盘价代替BuyToCover(0,MyExitPrice);}}Else If(High >= MyEntryPrice + StopLossSet*MinPoint) //可以在这里写上初始的止损处理{MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;If(Open > MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价即跳空触发,则用开盘价代替BuyToCover(0,MyExitPrice);}}...。
交易开拓者代码学习各种买卖指令及实例
![交易开拓者代码学习各种买卖指令及实例](https://img.taocdn.com/s3/m/16b73bed65ce05087732132d.png)
SetBreakEven(0,2000,True);当前所有持仓的盈利达到2000之后,启动所有持仓位置的保本平仓。(此时是计算所有持仓的盈利数)
触发价格:触发单设定的条件价格,通过比较现价和触发价格确定是否下单。下单之后,该触发单会从交易服务器中删除;
执行价格:条件满足之后,发送委托的价格,设定为0可自动获取当时的叫买/卖价;
过期时间:设定触发单的过期时间,到这个时间还没有触发的订单会被设为过期,不再进行监控。
吊买
吊买是指当现价向下跌破触:吊卖
备注产生一个空头建仓操作,无返回值,该函数仅支持交易指令。
该函数仅用于空头建仓,其处理规则如下:
如果当前持仓状态为持平,即MarketPosition = 0时,该函数按照参数进行空头建仓。
如果当前持仓状态为多仓,即MarketPosition = 1时,该函数首先平掉所有多仓,达到持平的状态,然后再按照参数进行空头建仓。
注意:触发单在发送之后将会生效,该委托单在服务器上运行,此时您关闭程序或电脑不会影响触发单的执行。
SetPercentTrailing(2000,0.2,True);又是一个宝
SetPercentTrailing(2000,0.2,True);当前所有持仓盈利在大于2000之后回落,当回落百分比达到20%之后,执行所有持仓位置的百分比回落平仓。(此时是计算所有持仓的盈利数)
参数Share买入数量,为整型值,默认为使用系统设置参数;
Price买入价格,为浮点数,默认=0时为使用现价(非最后Bar为Close);
TB交易网校2012.1.5课程:交易开拓者公式编写基础(二)
![TB交易网校2012.1.5课程:交易开拓者公式编写基础(二)](https://img.taocdn.com/s3/m/fd85b86ea45177232f60a2b3.png)
价格百分比的止盈或止损的写法:
TargetPrice = EntryPrice * (1+ TakeProfit * 0.01); StopPrice = EntryPrice * (1 – Stoploss * 0.01);
应注意的问题
如果单根K线的最高价和最低价相差很大,有可 能出现止盈和止损同时满足的情况,解决办法:
用能保持结果不变的数据做判断
比如:用High、Low、Open等做判断
突破代码: If (High>High[1]) { buy(1, Max(Open, High[1])); } 止损代码: if (Low < Stopline) { Sell(0, Min(Open, Stopline)); }
TB用户函数的编写
常用指标交易系统的实现
2
信号消失问题及解决办法Fra bibliotek产生的原因:
使用BUY/Sell指令进行自动交易; 交易(开仓或平仓)判断条件中使用了变化的数据
后果:
导致历史回测结果失真;
导致后续交易指令出现问题;
解决办法:
用确定不变的数据来做为判断条件;
用能保持结果不变的数据来做为判断条件;
除非算法需要否则建议不要在条件语句内循环语句内以及包含逻辑运算符的条件表达式中使用序列函所以编写一个基于技术指标的交易系统在tb中是非常简单的第一步复制技术指标的代码粘贴到新建的公式应用中
交易开拓者公式编写基础 (二)
蔡云华 深圳开拓者科技有限公司
1
内容概要
公式编写应注意的问题及解决办法 止损止盈、跟踪止盈代码的编写
代码中将消失的信号补上
币圈买卖指标源代码大全
![币圈买卖指标源代码大全](https://img.taocdn.com/s3/m/c73a36dd77a20029bd64783e0912a21614797f9b.png)
币圈买卖指标源代码大全上线=sma(close,6.5,1);下线=sma(close,13.5,1);上线界=sma(close,3,1);下线界=sma(close,8,1);drawStickBetweenIf(上线 > 下线,上线,下线,color="red",fill=true,linewidth=2.5);drawStickBetweenIf(下线 > 上线,上线,下线,color="green",fill=true,linewidth=2.5);drawText(isCrossUp(上线,下线),low * 0.98,"全仓买入",color="yellow");drawText(isCrossUp(下线界,上线界),high * 1.02,"清仓",color="yellow");bbi=(ma(close,3) + ma(close,6) + ma(close,12) + ma(close,24)) / 4;upr=bbi + 3 * std(bbi,13);dwn=bbi - 3 * std(bbi,13);安全=ma(close,60);lc=refBefore(close,1);rsi=sma(max(close - lc,0),6,1) / sma(abs(close - lc),6,1) * 100;a7=(2 * close + high + low) / 4;操作=ma(a7,5);draw(操作,color="white");操作界=ma(a7,5) * 1.03;操作界限=ma(a7,5) * 0.97;var1=lowest(a7,21);draw(var1,color="white");var2=highest(a7,21);draw(var2,color="white");sk=ema((a7 - var1) / (var2 - var1) * 100,7);sd=ema(0.667 * refBefore(sk,1) + 0.333 * sk,5);drawText(ifelse(count(close < refBefore(close,1),8) / 8 > 6 / 10 && vol >= 1.5 * ma(vol,5) && count(sk >= sd,3) && refBefore(low,1) == lowest(low,120),1,0),low * 0.98,"买进",color="#0099ff");drawText(ifelse(count(close < refBefore(close,1),13) / 13 > 6 / 10 && count(sk > sd,6) && refBefore(low,5) == lowest(low,120) &&refBefore(close >= open,4) && refBefore(close > open,3) && refBefore(close > open,2) && refBefore(open > close,1) && open > refBefore(close,1),1,0),low * 0.98,"买进",color="yellow");d=ma(close,80) - ma(close,10) / 3;drawText(ifelse(close < d && vol / 240 > ma(vol,5) / 240 && close > refBefore(close,1) * 1.08 && close < ma(close,13) * 1.3,1,0),low * 0.98,"抄底",color="yellow");。
交易开拓者TB软件使用说明暨程序化交易风险揭示说明书
![交易开拓者TB软件使用说明暨程序化交易风险揭示说明书](https://img.taocdn.com/s3/m/06cc595402768e9951e738ed.png)
交易开拓者(TB)软件使用说明暨程序化交易风险揭示说明书尊敬的客户:您好!感谢您使用交易开拓者(TB)软件(以下简称“该软件”)。
在使用之前,请务必仔细阅读和理解《交易开拓者(TB)软件使用说明暨程序化交易风险揭示说明书》(以下简称《风险揭示说明书》)。
除非您接受并认可本《风险揭示说明书》,否则您不能使用我在我公司使用该软件进行程序化交易。
您一旦在我公司申请开通交易功能,即表示您同意并认可本《风险揭示说明书》及该软件随附的计算机软件和相关文档印刷材料。
一、该软件的功能该软件包含基础行情、分析和交易下单功能;基于本软件的程序化交易系统或策略的编写、测试和自动下单功能;内嵌于软件的、由第三方提供的,客户可根据自身需要选择使用的多种程序化交易系统及策略;基于客户自行提供的交易理念及交易策略进行定制,由公司或公司委托的第三方负责编写和实现的程序化交易系统、策略及方案;为客户提供程序化交易平台,供客户根据自己的交易理念和交易策略自行进行交易程序的编写及运行。
二、该软件的使用1、您需要使用该软件在我公司进行交易,首先需要自行向深圳开拓者科技有限公司申请软件账号,并在我公司开立期货账户,向公司提出申请开通本该软件交易功能,并签署《风险揭示说明书》。
2、我公司在接到您的使用申请和签署的《风险揭示说明书》后,将联系深圳开拓者科技有限公司为您开通交易功能。
3、一个期货账户仅能为一个软件账号开通交易功能,即您仅能在一台计算机终端上安装、使用、显示、运行本软件的一份副本。
4、本软件自客户签署《风险揭示说明书》之日起一年内有效。
一年有效期过后,由客户选择是否继续使用本软件。
5、如客户在使用本软件的过程中,对本软件提出疑议,则视同客户自动放弃本软件的使用。
公司有权自动终止客户对本软件的使用权限,客户应自行销毁本软件的所有复制品,或归还给公司。
三、支持服务1、公司为您提供与本软件有关的支持服务,包括培训、软件安装与设置。
2、支持服务的使用受用户手册或其它公司提供的材料中所述的各项政策和计划的制约。
交易开拓者代码学习各种买卖指令及实例
![交易开拓者代码学习各种买卖指令及实例](https://img.taocdn.com/s3/m/be54182110661ed9ad51f397.png)
交易开拓者代码学习各种买卖指令及实例(TB)(转)2012年07月27日22:35原文地址:交易开拓者代码学习各种买卖指令及实例(TB)(转)作者:竹本无青各种买卖指令Buy说明产生一个多头建仓操作。
语法Buy(Numeric Share=0,Numeric Price=0,Bool Delay=False)参数Share 买入数量,为整型值,默认为使用系统设置参数;Price 买入价格,为浮点数,默认=0时为使用现价(非最后Bar为Close);Delay 买入动作是否延迟,默认为当前Bar发送委托,当Delay=True,在下一个Bar执行。
备注产生一个多头建仓操作,无返回值,该函数仅支持交易指令。
该函数仅用于多头建仓,其处理规则如下:如果当前持仓状态为持平,即MarketPosition = 0 时,该函数按照参数进行多头建仓。
如果当前持仓状态为空仓,即MarketPosition = -1 时,该函数首先平掉所有空仓,达到持平的状态,然后再按照参数进行多头建仓。
如果当前持仓状态为多仓,即MarketPosition = 1 时,该函数将继续建仓,但具体是否能够成功建仓要取决于系统中关于连续建仓的设置,以及资金,最大持仓量等限制。
示例在MarketPosition=0的情况下:Buy(50,10.2,1) 表示用10.2的价格买入50张合约,延迟到下一个Bar发送委托。
Buy(10,Close) 表示用当前Bar收盘价买入10张合约,马上发送委托。
Buy(5,0) 表示用现价买入5张合约,马上发送委托。
BuyToCover说明产生一个空头平仓操作。
语法BuyToCover(Numeric Share=0,Numeric Price=0,Bool Delay=False)参数Share 买入数量,为整型值,默认为平掉当前所有持仓;Price 买入价格,为浮点数,默认=0时为使用现价(非最后Bar为Close);Delay 买入动作是否延迟,默认为当前Bar发送委托,当Delay=True,在下一个Bar执行。
TBsmart交易开拓者智能交易版使用说明
![TBsmart交易开拓者智能交易版使用说明](https://img.taocdn.com/s3/m/f2429419c850ad02df804132.png)
TBsmart(交易开拓者智能交易版)使用说明目录上篇软件基本功能介绍TBSMART(交易开拓者智能交易版)使用说明 (1)一、软件概述 (4)1.1软件概述 (4)1.2软件运行环境 (4)1.3系统配置 (5)1.4软件安装 (5)二、系统登录 (9)2.1系统登陆界面 (9)三、界面介绍 (10)3.1行情报价 (10)3.2下单板 (17)3.3快捷下单......................................................................................................... 错误!未定义书签。
3.4炒单工具 ........................................................................................................ 错误!未定义书签。
3.5账户登录 (26)四、系统菜单 (27)4.1保存界面布局 (27)4.2恢复默认布局 (27)4.3系统设置 (27)4.4修改密码 (28)4.5清空用户数据 (29)4.6切换行情服务器 (29)4.7一些字段的含义 (29)五、分时图与K线图 (30)5.1K线图时间周期 (30)5.2K线图右键菜单 (30)六、卸载软件 (31)下篇软件应用实际案例七、界面设置使用示例 (32)7.1界面的个性化设置 (32)7.2界面的便捷性沟通 (37)7.3界面的多级排序和筛选功能 (41)7.4界面的多样性词条 (43)八、盘口下单使用示例 (43)8.1盘口下单案例1:传统炒单 (43)九、模式下单使用示例 (50)9.1模式下单案例1:开盘突破日内模型 (50)9.2模式下单案例2:追涨杀跌日内模型 (52)9.3模式下单案例3:拐头形态日内模型 (54)9.4模式下单案例4:日内黄线突破模型 (56)十、资金管理和组合应用 (58)10.1资金管理案例1:加减仓的灵活使用 (58)10.2资金管理案例2:二级选股策略 (63)10.3资金管理案例3:强弱排序策略 (64)一、软件概述1.1软件概述TBsmart是国内领先的期货行情显示与快捷下单软件,支持国内期货市场的实时行情报价、快捷下单、K线图与分时图显示。
程序化交易编程举例
![程序化交易编程举例](https://img.taocdn.com/s3/m/8e6ab8d1240c844769eaee17.png)
1、趋势转变如何表示?以均线拐头为例:MA10:=MA(CLOSE,10);//定义10周期均线MA10>REF(MA10,1)&&REF(MA10,1)>REF(MA10,2)&&REF(MA10,3)>REF(MA10,2)&&REF(MA10,4)> REF(MA10,3);//上拐MA10<REF(MA10,1)&&REF(MA10,1)<REF(MA10,2)&&REF(MA10,3)<REF(MA10,2)&&REF(MA10,4)< REF(MA10,3);//下拐2、交*(金*/死*)如何表示?以均线交*为例:MA5:=MA(CLOSE,5);//5个周期收盘价的简单移动平均MA10:=MA(CLOSE,10);//10个周期收盘价的简单移动平均MA20:=MA(CLOSE,20);//20个周期收盘价的简单移动平均CROSS(MA10,MA20),BK;//当MA10上穿MA20,发出买入开仓交易指令CROSS(MA10,MA5),SP;//当MA10上穿MA5,发出卖出平仓交易指令CROSS(MA20,MA10),SK;//当MA20上穿MA10,发出卖出开仓交易指令CROSS(MA5,MA10),BP;//当MA5上穿MA10,发出买入平仓交易指令3、价差如何表示?以最新价和均线价差为例:MA5:=MA(CLOSE,5);//5个周期收盘价的简单移动平均MA10:=MA(CLOSE,10);//10个周期收盘价的简单移动平均CROSS(MA10,MA5)||(CLOSE-MA5)>8,SK;//MA10上穿MA5或收盘价与MA5的差值大于8,发出卖出开仓交易指令(MA5-CLOSE)>6,BP;//MA5与收盘价的差值大于6,发出买入平仓交易指令CROSS(MA5,MA10)||(MA5-CLOSE)>8,BK;//MA5上穿MA10或收盘价与MA5的差值大于8,发出买入开仓交易指令(CLOSE-MA5)>6,SP;//收盘价与MA5的差值大于6,发出卖出平仓交易指令4、如何在模型中限制开平仓时间?MA5:=MA(CLOSE,5);//定义5周期的简单移动平均线MA10:=MA(CLOSE,10);//定义10周期的简单移动平均线TIME>=0905&&TIME<1455&&CROSS(MA5,MA10),BK;//在9点05分之后14点55分之前的时间段内出现5周期线金*10周期线后买开TIME>=1455,SP;//当时间到14点55分时自动发出卖平指令TIME>=0905&&TIME<1455&&CROSS(MA10,MA5),SK;//在9点05分之后14点55分之前的时间段内出现5周期线死*10周期线后卖开TIME>=1455,BP;//当时间到14点55分时自动发出买平指令5、KDJ模型雏形RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;//定义RSVK:=SMA(RSV,M1,1); //定义KD:=SMA(K,M2,1); //定义DJ:=3*K-2*D; //定义JJ<30&&CROSS(K,D),BPK;//J值小于30并且K、D金*,买平并买开J>70&&CROSS(D,K),SPK; //J值大于70并且K、D死*,卖平并卖开6、MACD模型雏形DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);//定义DIFFDEA := EMA(DIFF,M);//定义DEA(DIFF<0)&&(DEA<0)&&(CROSS(DIFF,DEA)),BPK;//DIFF小于0并且DEA小于0并且DIFF上穿DEA,买平并买开(DIFF>0)&&(DEA>0)&&(CROSS(DEA,DIFF)),SPK;//DIFF大于0并且DEA大于0并且DIFF下穿DEA,卖平并卖开7、MTM模型雏形MTM:=CLOSE-REF(CLOSE,N);//定义MTMCROSS(MTM,0),BPK;//MTM上穿0轴,买平并买开CROSS(0,MTM),SPK;//MTM下穿0轴,卖平并卖开8、RSI模型雏形LC:=REF(CLOSE,1);//定义LCRSI1:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1)*100;//定义RSI1RSI2:=SMA(MAX(CLOSE-LC,0),M,1)/SMA(ABS(CLOSE-LC),M,1)*100;//定义RSI2REF(RSI1,1)<40&&CROSS(RSI1,RSI2),BPK;//上周期的RSI1<40并且RSI1上穿RSI2,买平并买开REF(RSI1,1)>60&&CROSS(RSI2,RSI1),SPK;//上周期的RSI1>60并且RSI1下穿RSI2,卖平并卖开9、WM模型雏形RSV:= (CLOSE-HHV(HIGH,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;//定义RSVLWR1:=SMA(RSV,3,1);//定义LWR1LWR2:=SMA(LWR1,3,1);//定义LWR2CROSS(LWR1,LWR2),BPK;//LWR1上穿LWR2,买平并买开CROSS(LWR2,LWR1),SPK;//LWR1下穿LWR2,卖平并卖开10、SAR模型雏形SARLINE:=ABS(SAR(N,STEP,MVALUE));//定义SARLINECROSS(CLOSE,SARLINE),BPK;//最新价上穿SARLINE,买平并买开CROSS(SARLINE,CLOSE),SPK;//最新价下穿SARLINE,卖平并卖开。
开拓者源码日内高低点突破交易系统
![开拓者源码日内高低点突破交易系统](https://img.taocdn.com/s3/m/ced9353900f69e3143323968011ca300a7c3f676.png)
开拓者源码日内高低点突破交易系统介绍:日内高低点突破交易系统是一种经典的技术分析交易策略,其原理是通过观察市场的日内高低点来预测市场的方向,并在价格突破高低点时进行买卖。
这种策略常被应用于股票、期货和外汇等金融市场。
为了实现这个交易系统,我们需要使用开拓者源码进行编程。
下面是使用开拓者源码实现日内高低点突破交易系统的详细步骤。
步骤一:数据获取和预处理首先,我们需要获取市场的价格数据,并进行预处理。
可以使用开拓者源码提供的数据接口来获取实时或历史的价格数据,并对数据进行清洗和整理,以便后续的数据分析和计算。
步骤二:计算日内高低点接下来,我们需要计算每个交易日的高低点。
可以通过遍历每个交易日的价格数据,找到当日的最高价和最低价。
然后,可以将这些高低点保存到一个数据结构中,供后续使用。
步骤三:确定交易信号根据日内高低点,我们可以确定交易信号。
一般来说,当价格突破当日的最高点时,可以采取买入信号;当价格突破当日的最低点时,可以采取卖出信号。
可以通过设置一个阈值来过滤一些误差,例如在突破高点或低点时,价格需要超过最高点或低点的一定百分比才触发交易信号。
步骤四:风险管理和头寸控制在进行实际交易之前,我们还需要考虑风险管理和头寸控制。
可以根据风险承受能力和交易规模,设置适当的止损和止盈价位,并控制每次交易的资金占用比例。
步骤五:交易执行和盈亏计算最后,我们需要通过开拓者源码提供的交易接口,将交易信号转化为实际的交易行为。
可以根据交易信号进行买入或卖出操作,并根据市场的实际情况计算盈亏和收益率。
总结:日内高低点突破交易系统是一种简单而有效的交易策略,适用于各种市场和时间周期。
通过使用开拓者源码,我们可以轻松地实现这个交易系统,并进行进一步的优化和改进。
希望以上内容可以帮助您了解和应用日内高低点突破交易系统。
开拓者代码及函数三篇
![开拓者代码及函数三篇](https://img.taocdn.com/s3/m/d5e6854f192e45361166f52a.png)
开拓者代码及函数三篇篇一:学习各种买卖指令及实例Buy说明产生一个多头建仓操作。
语法 Buy(Numeric Share=0,Numeric Price=0,Bool Delay=False> b5E2RGbCAP参数 Share 买入数量,为整型值,默认为使用系统设置参数;Price 买入价格,为浮点数,默认 =0 时为使用现价 ( 非最后 Bar 为 Close> ;Delay 买入动作是否延迟,默认为当前 Bar 发送委托,当 Delay=True ,在下一个 Bar 执行。
备注产生一个多头建仓操作,无返回值,该函数仅支持交易指令。
该函数仅用于多头建仓,其处理规则如下:如果当前持仓状态为持平,即 MarketPosition = 0 时,该函数按照参数进行多头建仓。
如果当前持仓状态为空仓,即 MarketPosition = -1 时,该函数首先平掉所有空仓,达到持平的状态,然后再按照参数进行多头建仓。
p1EanqFDPw如果当前持仓状态为多仓,即 MarketPosition = 1 时,该函数将继续建仓,但具体是否能够成功建仓要取决于系统中关于连续建仓的设置,以及资金,最大持仓量等限制。
DXDiTa9E3d示例在 MarketPosition=0 的情况下:Buy(50,10.2,1> 表示用 10.2 的价格买入 50 张合约,延迟到下一个 Bar 发送委托。
Buy(10,Close> 表示用当前 Bar 收盘价买入 10 张合约,马上发送委托。
Buy(5,0> 表示用现价买入 5 张合约,马上发送委托。
BuyToCover说明产生一个空头平仓操作。
语法 BuyToCover(Numeric Share=0,Numeric Price=0,Bool Delay=False> RTCrpUDGiT参数 Share 买入数量,为整型值,默认为平掉当前所有持仓;Price 买入价格,为浮点数,默认 =0 时为使用现价 ( 非最后 Bar 为 Close> ;Delay 买入动作是否延迟,默认为当前 Bar 发送委托,当 Delay=True, 在下一个 Bar 执行。
交易开拓者软件功能介绍及使用操作方法课件
![交易开拓者软件功能介绍及使用操作方法课件](https://img.taocdn.com/s3/m/9a0abfbf65ce05087632137e.png)
6
TB平台的特点和优势
快捷易用、功能完备的交易平台
手工交易:快车道、批量下单、触发单、一键撤 单、一键平仓 套利与对冲:套利宝、价差下单 自动交易:程序化模型、交易助手、监控器 自主开发的功能强大的公式语言 图表化、多维度的历史测试工具 便于分析和测试的指数数据和连续数据
7
控制精细、高效强大的系统研发平台
交易开拓者软件功能介绍 及使用操作方法
1
内容安排
软件特点和主要功能介绍
程序化交易应用操作方法详解
2
内容安排
软件特点和主要功能介绍
程序化交易应用操作方法详解
3
产品简介
交易开拓者(简称TB)是针对期货(商品、外汇、股指)设计的分析 及交易的平台软件,是期货行情、多功能下单、系统化交易的完 美结合 ; 吸取国外多个领先金融交易软件(TradeStation、Wealth Lab 、 MetaStock、MetaTrader)的优点; 以交易为核心,所有的功能都是围绕交易而开发; 专业的系统化交易平台——用户可使用TB平台的TBL语言编写交易 模型,通过测试检验,和参数优化等流程,模型确定后可通过TB 平台实现系统化自动交易。 提供不同层次的版本满足客户的差异化需求。
TB的帮助文件(F1帮助) 最好的学习方法就是动手实验。
谢谢!
45
交易师
8
触发单
9
交易快车道
安全锁 一键下单 自动开平判断 平仓反手 一键撤单 自动生成止赢单 配合交易助手生 成止损单
常用的买卖指令
![常用的买卖指令](https://img.taocdn.com/s3/m/2031f5c2524de518974b7d09.png)
常用的买卖指令市价指令Market Order:市价指令是按照发出指令当时的市场价格立即执行的买或卖指令。
这种性质的指令最常用。
已经作出了买或卖的决定时,发出市价指令去立即执行是最快捷的做法。
市况变化快速,限价指令往往难以完成,需要频频改价,废时失事;市价指令则没有这个弊端。
例:决定买入时,立即发出买入指令,这便是市价买入指令 Market Buy。
金市现价报造 1350 美元,落单买入一手,这个指令须尽快完成,故按当刻卖盘价买入,可能与心目中的价格有所偏差。
例:决定卖出时,立即发出卖出指令,这便是市价卖出指令 Market Sell。
金市现价报造 1350 美元,落单卖出一手,这个指令须尽快完成,故按当刻买盘价卖出,可能与心目中的价格有所偏差。
限价指令Limit Order:限价指令是按照指定价格去完成的买卖指令。
限价买入指令所指定的价格必须低于发出指令当时的市价,而限价卖出指令所指定的价格必须高于发出指令当时的市价。
由于市价未必能够上升或下跌至限价指令所指定的价格水平而触发到其执行,所以用限价指令的方式落单买卖可能错失很多机会。
(市场价格触及限价指令所指定的价格并不保证该指令已经完成,须待确认作准)例:落单买入时,指定买入的价格低于市价,这便是限价买入指令Buy Limit。
金市现价报造1350美元,落单1349美元(或更低)买入一手,这个指令便只能以1349美元或更低价格去完成。
例:落单卖出时,指定卖出的价格高于市价,这便是限价卖出指令Sell Limit。
金市现价报造1350美元,落单1351美元(或更高)卖出一手,这个指令便只能以1351美元或更高价去完成。
止截指令Stop Order:采用这类指令的目的不外是:1. 止蚀。
即是将仓底(长仓或短仓)的亏损减至最低,或 2.止赚。
将仓底(长仓或短仓)的利润锁定或 3.开立新仓(长仓或短仓)。
发出止截买入指令时,所指定的买入价格必须高过市价,而发出止截卖出指令时,所指定的卖出价格必须低过市价。
TB交易网校2011.12.29课程:交易开拓者公式编写基础(一)
![TB交易网校2011.12.29课程:交易开拓者公式编写基础(一)](https://img.taocdn.com/s3/m/9199eaf29e314332396893e8.png)
Bar数据的使用
Bar数据是TB公式运行的基础。 Bar数据是序列数据,可以回溯读取(图示)。 举例: 比较今天的最高价是否突破了昨天的最高价 表达式为:High > High[1] 比较今天的最高价是否突破了前两天的最高价 表达式为:High > High[1] and High>High[2] 或者:High > High[1] && High>High[2]
参数:String Name String str Numeric Locator=0 Integer Color=-1 Integer BarsBack=0
----- 输出值的名称 ----- 输出的字符串; ----- 输出值的定位点; ----- 输出值的颜色; ----从当前BAR回溯的 BAR数
Params
公式参数段
Vars
NumericSeries MA; ……
公式变量段
Begin
MA = AverageFC(Close, Length); …… End
9
公式脚本段
例1:Hello World
Sample1:
Begin FileAppend("c:\\tb\\sample1.txt","Hello World!"); End
While循环
While语句在条件为真的时候重复执行某一项操作。即, 只要条件表达式的值为真(True)时,就重复执行某个动 作。直到行情信息改变以致条件为假 (False)时,循环 才结束。 语法如下: While (Condition) { TradeBlazer公式语句; } Continue 和 Break
期货程序化编程基础(交易开拓者)
![期货程序化编程基础(交易开拓者)](https://img.taocdn.com/s3/m/1ece762658fb770bf78a5586.png)
运算符
类型
算术运算符
关系运算符
保留字
+ - * / % ^
> >= < <= == <>
逻辑运算符
括号
AND/&& OR/|| NOT/!
() {} []
其它
.,
算术运算符号
操作符 + * 加 减 乘 说明
关系运算符号 操作符 说明 < > 小于 大于
/
% ^ ()
除
求模 求幂 括号
<=
>= <> ==
标点符号
• 通常,在写语句的过程中,会用到很多的标点符号。可用来定义参数、定义变量、创 建规则的优先权。例如,TradeBlazer公式用";"来标注一个语句结束。标点符号也是 一个保留字,因为符号也是语言结构的一部分,在下表中列出了TradeBlazer公式中所 用到的标点符号,和该标点符号所表达的意思:
交易开拓者(TB)编程基础
----公式篇
华泰长城期货有限公司 Huatai Great Wall Futures Co., Ltd. QQ:909118951
基本框架
1
TB公式概述
2
3 4
数据 语句 参数
5
6 1
变量
数据回溯
公式
概述
什么是TradeBlazer公式
1、TradeBlazer公式是一种专为分析金融数据-时间序列而设计的高级语言 ,它提供直接、强大的框架将交易思想转化为用户函数、技术分析,交 易指令等计算机能够识别的代码。 2、TradeBlazer公式是一门语法简单但是功能强大的语言,利用它能创建 自己的交易和技术分析工具。通过组合普通的交易指令和简单的语句, TradeBlazer公式能够很容易并且直接的用简单语句表达自己的交易规则 和行为。 3、交易开拓者能够读取TradeBlazer公式,在历史价格数据基础上进行评 估,并能自动执行特定的交易动作,将交易思想转化为实际的交易操作 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
交易开拓者代码学习各种买卖指令及实例(TB)(转)2012年07月27日22:35原文地址:交易开拓者代码学习各种买卖指令及实例(TB)(转)作者:竹本无青各种买卖指令Buy说明产生一个多头建仓操作。
语法Buy(Numeric Share=0,Numeric Price=0,Bool Delay=False)参数Share 买入数量,为整型值,默认为使用系统设置参数;Price 买入价格,为浮点数,默认=0时为使用现价(非最后Bar为Close);Delay 买入动作是否延迟,默认为当前Bar发送委托,当Delay=True,在下一个Bar执行。
备注产生一个多头建仓操作,无返回值,该函数仅支持交易指令。
该函数仅用于多头建仓,其处理规则如下:如果当前持仓状态为持平,即MarketPosition = 0 时,该函数按照参数进行多头建仓。
如果当前持仓状态为空仓,即MarketPosition = -1 时,该函数首先平掉所有空仓,达到持平的状态,然后再按照参数进行多头建仓。
如果当前持仓状态为多仓,即MarketPosition = 1 时,该函数将继续建仓,但具体是否能够成功建仓要取决于系统中关于连续建仓的设置,以及资金,最大持仓量等限制。
示例在MarketPosition=0的情况下:Buy(50,10.2,1) 表示用10.2的价格买入50张合约,延迟到下一个Bar发送委托。
Buy(10,Close) 表示用当前Bar收盘价买入10张合约,马上发送委托。
Buy(5,0) 表示用现价买入5张合约,马上发送委托。
BuyToCover说明产生一个空头平仓操作。
语法BuyToCover(Numeric Share=0,Numeric Price=0,Bool Delay=False)参数Share 买入数量,为整型值,默认为平掉当前所有持仓;Price 买入价格,为浮点数,默认=0时为使用现价(非最后Bar为Close);Delay 买入动作是否延迟,默认为当前Bar发送委托,当Delay=True,在下一个Bar执行。
备注产生一个空头平仓操作,无返回值,该函数仅支持交易指令。
该函数仅用于空头平仓,其处理规则如下:如果当前持仓状态为持平,即MarketPosition = 0 时,该函数不执行任何操作。
如果当前持仓状态为多仓,即MarketPosition = 1 时,该函数不执行任何操作。
如果当前持仓状态为空仓,即MarketPosition = -1 时,如果此时Share使用默认值,该函数将平掉所有空仓,达到持平的状态,否则只平掉参数Share的空仓。
示例在MarketPosition = -1的情况下:BuyToCover(50,10.2,1) 表示用10.2的价格空头买入50张合约,延迟到下一个Bar发送委托。
BuyToCover(10,Close) 表示用当前Bar收盘价空头买入10张合约,马上发送委托。
BuyToCover(5,0) 表示用现价空头买入5张合约),马上发送委托。
sell说明产生一个多头平仓操作。
(BK)语法Sell(Numeric Share=0,Numeric Price=0,Bool Delay=False)参数Share 卖出数量,为整型值,默认为平掉当前所有持仓;Price 卖出价格,为浮点数,默认=0时为使用现价(非最后Bar为Close);Delay 卖出动作是否延迟,默认为当前Bar发送委托,当Delay=True,在下一个Bar执行。
备注产生一个多头平仓操作,无返回值,该函数仅支持交易指令。
该函数仅用于多头平仓,其处理规则如下:如果当前持仓状态为持平,即MarketPosition = 0 时,该函数不执行任何操作。
如果当前持仓状态为空仓,即MarketPosition = -1 时,该函数不执行任何操作。
如果当前持仓状态为多仓,即MarketPosition = 1 时,如果此时Share使用默认值,该函数将平掉所有多仓,达到持平的状态,否则只平掉参数Share的多仓。
示例在MarketPosition=0的情况下:Sell(50,10.2,1) 表示用10.2的价格卖出50张合约,延迟到下一个Bar发送委托。
Sell(10,Close) 表示用当前Bar收盘价卖出10张合约,马上发送委托。
Sell(5,0) 表示用现价卖出5张合约,马上发送委托。
sellshort说明产生一个空头建仓操作。
语法SellShort(Numeric Share=0,Numeric Price=0,Bool Delay=False)参数Share 卖出数量,为整型值,默认为使用系统设置参数;Price 卖出价格,为浮点数,默认=0时为使用现价(非最后Bar为Close);Delay 卖出动作是否延迟,默认为当前Bar发送委托,当Delay=True,在下一个Bar执行。
备注产生一个空头建仓操作,无返回值,该函数仅支持交易指令。
该函数仅用于空头建仓,其处理规则如下:如果当前持仓状态为持平,即MarketPosition = 0 时,该函数按照参数进行空头建仓。
如果当前持仓状态为多仓,即MarketPosition = 1 时,该函数首先平掉所有多仓,达到持平的状态,然后再按照参数进行空头建仓。
如果当前持仓状态为空仓,即MarketPosition = -1 时,该函数将继续建仓,但具体是否能够成功建仓要取决于系统中关于连续建仓的设置,以及资金,最大持仓量等限制。
示例在MarketPosition=0的情况下:SellShort(50,10.2,1) 表示用10.2的价格空头卖出50张合约,延迟到下一个Bar发送委托。
SellShort(10,Close) 表示用当前Bar收盘价空头卖出10张合约,马上发送委托。
SellShort(5,0) 表示用现价空头卖出5张合约,马上发送委托。
对应的BPK,SPK,你清楚了吗函数名描述Buy 平掉所有空头持仓,开多头仓位。
(*BPK*)Sell 平掉指定的多头持仓。
SellShort 平掉所有多头持仓,开空头仓位。
(*SPK*)BuyToCover 平掉指定的空头持仓。
获得当前持仓状态,太妙了MarketPosition说明获得当前持仓状态。
语法Integer MarketPosition()参数无备注获得当前持仓状态,返回值为整型,该函数仅支持交易指令。
返回值定义如下:-1 当前位置为持空仓0 当前位置为持平1 当前位置为持多仓示例无内建平仓指令--精华之特色内建平仓指令除了上节的Sell和BuyToCover可以进行平仓之外,TradeBlazer公式提供了额外的八种平仓函数,通过合理的应用内建平仓函数,可以帮助您有效的锁定风险并及时获利。
您可以组合使用内建平仓函数,也可以在自己的交易指令中调用内建平仓函数进行平仓,八个内建平仓函数如下:函数名描述SetExitOnClose 该平仓函数用来在当日收盘后产生一个平仓动作,将当前所有的持仓按当日收盘价全部平掉。
SetBreakEven 该平仓函数在获利条件满足的情况下启动,当盈利回落达到保本时产生平仓动作,平掉指定的仓位。
SetStopLoss 该平仓函数在亏损达到设定条件时产生平仓动作,平掉指定的仓位。
SetProfitTarget 该平仓函数在盈利达到设定条件时产生平仓动作,平掉指定的仓位。
SetPeriodTrailing 该平仓函数在盈利回落到设定条件时产生平仓动作,平掉指定的仓位。
SetPercentTrailing 该平仓函数在盈利回落到设定条件时产生平仓动作,平掉指定的仓位。
SetDollarTrailing 该平仓函数在盈利回落到设定条件时产生平仓动作,平掉指定的仓位。
SetInactivate 该平仓函数在设定时间内行情一直在某个幅度内波动时产生平仓动作,平掉指定的仓位。
关于ExitPosition上述多个平仓函数都用到了参数ExitPosition,作为平仓函数仓位控制的重要参数,有必要对该参数进行单独说明。
ExitPosition是布尔型参数,当ExitPosition=True时,表示将当前所有的持仓作为一个整体,根据其平均建仓成本,计算各平仓函数的盈亏,当条件满足时,会将所有仓位一起平掉;当ExitPosition=False时,表示单独对每个建仓位置进行平仓,单独计算各平仓函数盈亏时,当单个建仓位置条件满足后,平掉该建仓位置即可。
触发单触发单触发单是交易开拓者特有的交易方式,触发单是指用户设置条件,将触发单提交到交易开拓者的交易服务器,当设定条件满足情况,交易服务器会自动发送委托到交易所。
触发单可以帮助解决用户盯盘的辛苦,及手动发单的速度问题。
触发单分为以下四种类型:吊买、吊卖、追买、追卖。
每个触发单在发送时需要输入以下参数:触发价格:触发单设定的条件价格,通过比较现价和触发价格确定是否下单。
下单之后,该触发单会从交易服务器中删除;执行价格:条件满足之后,发送委托的价格,设定为0可自动获取当时的叫买/卖价;过期时间:设定触发单的过期时间,到这个时间还没有触发的订单会被设为过期,不再进行监控。
吊买吊买是指当现价向下跌破触发价格,即按执行价格产生一个即时买入委托单,如下图所示:吊卖吊卖是指当现价向上突破触发价格,即按执行价格产生一个即时卖出委托单,如下图所示:追买追买是指当现价向上突破触发价格,即按执行价格产生一个即时买入委托单,如下图所示:追卖追卖是指当现价向下跌破触发价格,即按执行价格产生一个即时卖出委托单,如下图所示:修改或删除触发单当存在某个商品的触发单,可通过双击帐户管理的触发单页面的项目,打开交易师,进行修改或删除操作。
您可以修改数量、触发单类型、触发价格、执行价格、过期时间及止损获利等,完成修改之后,点击[修改]按钮即可完成修改;您可以直接点击[删除]按钮将该触发单删除。
注意: 触发单在发送之后将会生效,该委托单在服务器上运行,此时您关闭程序或电脑不会影响触发单的执行。
SetPercentTrailing(2000,0.2,True); 又是一个宝SetPercentTrailing(2000,0.2,True); 当前所有持仓盈利在大于2000之后回落,当回落百分比达到20%之后,执行所有持仓位置的百分比回落平仓。
(此时是计算所有持仓的盈利数)SetPercentTrailing(1000,0.1,False); 当前持仓的某一个建仓位置的盈利大于1000之后回落,当回落百分比达到10%之后,执行该持仓位置的百分比回落平仓。
(此时只计算该持仓位置的盈利)SetStopLoss(0,2000,True); 当前所有持仓亏损达到2000之后,执行所有持仓位置的止损平仓。