交易开拓者代码学习各种买卖指令及实例

合集下载

开拓者源码:日内高低点突破交易系统

开拓者源码:日内高低点突破交易系统

开拓者源码:日内高低点突破交易系统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//------------------------------------------------------------------------}。

开拓者代码 学习各种买卖指令及实例

开拓者代码 学习各种买卖指令及实例

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)编程初级篇

交易开拓者(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线,再执行第一行代码,再执行第二行代码.........我一直非常愿意帮助客户们解答在编程中的难点,但是却不大愿意帮助客户写完整的公式策略。

交易开拓者使用教程

交易开拓者使用教程

目录第一章 (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交易系统模型源代码一

量化经典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必须考虑的特殊情况如果前⼀⽇涨停或跌停,则会出现范围很⼩。

交易开拓者三级止损代码

交易开拓者三级止损代码

交易开拓者三级止损代码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);}}...。

交易开拓者代码学习各种买卖指令及实例

交易开拓者代码学习各种买卖指令及实例
SetStopLoss(1,50, False);当前持仓的某一个建仓位置每张合约的亏损达到50之后,执行该持仓位置的止损平仓。(此时只计算该持仓位置的每张合约亏损)
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课程:交易开拓者公式编写基础(二)


价格百分比的止盈或止损的写法:
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
内容概要

公式编写应注意的问题及解决办法 止损止盈、跟踪止盈代码的编写
代码中将消失的信号补上
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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之后,执行所有持仓位置的止损平仓。

相关文档
最新文档