智能交易公式

来自tradeStar帮助系统
(版本间的差异)
跳转到: 导航, 搜索
(虚盘与实盘)
第2行: 第2行:
  
 
==虚盘与实盘==
 
==虚盘与实盘==
 +
 +
在交易策略里,一般的交易函数并不直接操作真实帐号。每个策略都虚拟出一个帐号,称之为虚盘。
 +
 +
在这个帐号上开平仓都是瞬间完成的,没有网络延时,并且保证成功。
 +
 +
这样做可以确保策略自身逻辑的完整性,就是说每当策略产生信号时,虚盘总是能根据信号发生交易,
 +
 +
并不会像真实交易那样产生滑价,延时,部分成交,甚至不成交。
 +
 +
实盘是指真实的交易帐号(也可以是模拟帐号),实盘是通过与虚盘的同步跟随去完成实际交易的。
 +
 +
 +
请看下面的例子:
 +
ma1:ma(close, 5);
 +
ma2:ma(close, 10);
 +
if cross(ma2, ma1) then sellshort;
 +
该策略以5日均线和10日均线交叉作为开仓条件
 +
 +
[[Image:Fmltrade1.png]]
 +
 +
两条均线在图中所标注处发生了交叉,则虚盘在下一根K线的开盘价卖空1手。
 +
 +
这个操作是不需要真实交易帐号的。虚盘的交易信号使用虚心三角形表示,鼠标在上方时会飘浮出交易提示。
 +
 +
虚盘的仓位会标注在策略图标的右方,此时蓝色的[-1]表示虚盘持有1手空仓,多仓以红色正数表示。
 +
 +
虚盘不允许双向持仓,开反向仓时自动平掉原方向的仓位。
 +
 +
 +
虚盘的信号通过仓位同步反应在真实交易中。接着上面的例子,如果此时登陆了交易帐号,并点击小脸打开交易
 +
 +
(笑脸为交易开启,哭脸为交易关闭),并且把同步设置成“总是同步”,实盘将会在最新价处跟随虚盘开仓,
 +
 +
使得实盘与虚盘的仓位一致:
 +
 +
[[Image:Fmltrade2.png]]
 +
 +
同步的选项有以下几种:
 +
*'''总是同步''':任何时候都保证实盘与虚盘的持仓数量和方向一致
 +
*'''下次持仓方向改变时同步''':持仓方向有持多仓,持空仓和无持仓三种,当下次持仓方向改变时才进行同步
 +
*'''下次持仓数量改变时同步''':当虚盘持仓在数量上改变时同步。方向改变时持仓数量一定改变,但持仓数量改变时不一定持仓方向也改变
 +
*'''市场价优于虚盘开仓均价时同步''':当虚盘有持仓,实盘等待最新价低于多头虚盘开仓价(或者高于空头开仓价时),进行同步
  
 
==ThisBar 与 NextBar==
 
==ThisBar 与 NextBar==

2013年6月14日 (五) 16:04的版本

智能交易脚本是量化交易思路的表达形式

目录

虚盘与实盘

在交易策略里,一般的交易函数并不直接操作真实帐号。每个策略都虚拟出一个帐号,称之为虚盘。

在这个帐号上开平仓都是瞬间完成的,没有网络延时,并且保证成功。

这样做可以确保策略自身逻辑的完整性,就是说每当策略产生信号时,虚盘总是能根据信号发生交易,

并不会像真实交易那样产生滑价,延时,部分成交,甚至不成交。

实盘是指真实的交易帐号(也可以是模拟帐号),实盘是通过与虚盘的同步跟随去完成实际交易的。


请看下面的例子:

ma1:ma(close, 5);
ma2:ma(close, 10);
if cross(ma2, ma1) then sellshort;

该策略以5日均线和10日均线交叉作为开仓条件

Fmltrade1.png

两条均线在图中所标注处发生了交叉,则虚盘在下一根K线的开盘价卖空1手。

这个操作是不需要真实交易帐号的。虚盘的交易信号使用虚心三角形表示,鼠标在上方时会飘浮出交易提示。

虚盘的仓位会标注在策略图标的右方,此时蓝色的[-1]表示虚盘持有1手空仓,多仓以红色正数表示。

虚盘不允许双向持仓,开反向仓时自动平掉原方向的仓位。


虚盘的信号通过仓位同步反应在真实交易中。接着上面的例子,如果此时登陆了交易帐号,并点击小脸打开交易

(笑脸为交易开启,哭脸为交易关闭),并且把同步设置成“总是同步”,实盘将会在最新价处跟随虚盘开仓,

使得实盘与虚盘的仓位一致:

Fmltrade2.png

同步的选项有以下几种:

  • 总是同步:任何时候都保证实盘与虚盘的持仓数量和方向一致
  • 下次持仓方向改变时同步:持仓方向有持多仓,持空仓和无持仓三种,当下次持仓方向改变时才进行同步
  • 下次持仓数量改变时同步:当虚盘持仓在数量上改变时同步。方向改变时持仓数量一定改变,但持仓数量改变时不一定持仓方向也改变
  • 市场价优于虚盘开仓均价时同步:当虚盘有持仓,实盘等待最新价低于多头虚盘开仓价(或者高于空头开仓价时),进行同步

ThisBar 与 NextBar

交易语句

基本的交易可以通过 Buy/Sell/SellShort/BuyToCover 函数或语句完成。

指令 中文 含义
Buy 买入 多头开仓
Sell 卖出 多头平仓
SellShort 卖开 空头开仓
BuyToCover 买平 空头平仓

交易函数

作为函数时,与一般的函数调用一样,目前只支持逐根运行的模式。

Buy('symbol', Lots, Price=0, Slippage=0, OT=OT_Market, KT=KT_NextBar, Comment=)
SellShort('symbol', Lots, Price=0, Slippage=0, OT=OT_Market, KT=KT_NextBar, Comment=)
Sell('Symbol', lots, price, slippage, OT, KT, 'Comment') [From 'EntryName']
BuyToCover('Symbol', lots, price, slippage, OT, KT, 'Comment') [From 'EntryName']

Symbol: 下单品种

Lots: 下单数量,填Default时下单数量由界面控制

Price: 下单价格,市价单 OT_Market 时价格可以填 0

Slippage: 下单滑价,滑价是在实盘成交时起作用的,不影响虚盘的成交价格,但会影响测评报告的绩效计算。滑价填0时由界面控制滑价。

OT: Order Type 有以下的类型:

  • OT_OPEN 开盘竞价,暂不支持
  • OT_CLOSE 收盘竞价,暂不支持
  • OT_MARKET 市价单,以当前价格成交
  • OT_LIMIT 限价单,当买方向价格低于下单价格时成交(或卖方向高于此价格)
  • OT_STOP 追价单,当买方向价格高于下单价格时成交(或卖方向低于此价格)

KT: K线类型有以下几种:

  • KT_ThisBar, 当前一根K线,只能配合 OT_Market
  • KT_NextBar, 下一根K线,可以配合 OT_Market/OT_Stop/OT_Limit

Comment: 下单注释,开仓时作为仓位标记

EntryName: 平仓时可以指定只操作某个标记的仓位

返回值:这4个交易函数都是操作虚盘的,操作能保证成功,所以函数没有返回值

交易语句

作为交易语句时,功能与交易函数一样,但写法更易于理解

 ('SellShort' | 'Sell' 'Short') ['(' "EntryLabel" ')'] [TradeSize] EntryType
 'Buy' ['(' "EntryLabel" ')'] [TradeSize] EntryType 
 'Sell'['(' "ExitLabel" ')'] [From Entry("EntryLabel")] [TradeSize[Total]] ExitType
 ('BuyToCover' | 'Buy' 'To' 'Cover' ) [("ExitLabel")][From Entry("EntryLabel")] [TradeSize[Total]] ExitType 

 EntryType: ( This Bar[On]Close | Next Bar[At]Open or Next Bar[At]Market | Next Bar[At]Price Limit | Next Bar[At]Price  Stop )
 ExitType: ( This Bar[On]Close | Next Bar[At]Open  or Next Bar[At]Market | Next Bar[At]Price  Limit | Next Bar[At]Price  Stop )
 ('次周期'|'本周期') [价格] [类型] ('买入'|'卖开') [数量] ['标记为' '开仓标记'];
 ('次周期'|'本周期') [价格] [类型] ['从标记' '开仓标记'] ('卖出'|'买平') [数量] ['标记为' '平仓标记'];
 
 类型: ('追价'|'限价'|'市价')

实盘函数

限价,追价,市价单

止盈,止损,跟踪止损,震荡止损,保本止损

个人工具
名字空间

变换
操作
导航
工具箱