易盛如何获得亏损交易总次数?比如类似TB的NumLosTrades函数
本帖最后由 满盘红 于 2012-7-28 00:41 编辑交易函数 交易开拓者TB
获得保本交易的平均持仓Bar数AvgBarsEvenTrade
获得亏损交易的平均持仓Bar数AvgBarsLosTrade
获得盈利交易的平均持仓Bar数AvgBarsWinTrade
获得当前持仓的平均建仓价格AvgEntryPrice
获得当前持仓的第一个建仓位置到当前位置的Bar计数BarsSinceEntry
获得最近平仓位置到当前位置的Bar计数BarsSinceExit
产生一个多头建仓操作Buy
产生一个空头平仓操作BuyToCover
获得当前持仓位置的每手浮动盈亏ContractProfit
获得当前的可用资金CurrentCapital
获得当前持仓的持仓合约数CurrentContracts
获得当前持仓的建仓次数CurrentEntries
获得当前持仓的第一个建仓位置的日期EntryDate
获得当前持仓的第一个建仓价格EntryPrice
获得当前持仓的第一个建仓位置的时间EntryTime
获得最近平仓位置Bar日期ExitDate
获得最近平仓位置的平仓价格ExitPrice
获得最近平仓位置Bar时间ExitTime
获得累计的总亏损GrossLoss
获得累计的总利润GrossProfit
获得最大单次交易亏损数LargestLosTrade
获得最大单次交易盈利数LargestWinTrade
获得当前持仓状态MarketPosition
获得最大连续亏损交易次数MaxConsecLosers
获得最大连续盈利交易次数MaxConsecWinners
获得当前持仓的最大持仓合约数MaxContracts
获得最大的持仓合约数MaxContractsHeld
获得最大的建仓次数MaxEntries
获得最大的资产缩水值MaxIDDrawDown
获得当前持仓的最大浮动亏损数MaxPositionLoss
获得当前持仓的最大浮动盈利数MaxPositionProfit
获得累计的净利润NetProfit
获得保本交易的总次数NumEvenTrades
获得亏损交易的总次数NumLosTrades
获得盈利交易的总次数NumWinTrades
获得盈利的成功率PercentProfit
获得当前持仓位置的浮动盈亏PositionProfit
产生一个多头平仓操作Sell
产生一个空头建仓操作SellShort
根据参数进行保本平仓操作SetBreakEven
根据参数进行价值回落平仓操作SetDollarTrailing
当日收盘全部平仓SetExitOnClose
根据参数进行盘整平仓操作SetInactivate
根据参数进行百分比回落平仓操作SetPercentTrailing
根据参数进行区间回落平仓操作SetPeriodTrailing
根据参数进行获利平仓操作SetProfitTarget
根据参数进行止损平仓操作SetStopLoss
获得保本交易的总持仓Bar数TotalBarsEvenTrades
获得亏损交易的总持仓Bar数TotalBarsLosTrades
获得盈利交易的总持仓Bar数TotalBarsWinTrades
获得交易的总次数TotalTrades
[*] if(NumLosTrades == 0) // 当日从来没有止损过,开始准备计算。开平仓的方法都包装在OpenCoverFor2Lines函数中
[*]{
[*]// OpenCoverFor2Lines函数包装了开平仓算法,其用意如下:
[*]// 1、返回值为零表示不做任何头寸操作,非零表示要操作
[*]// 2、返回值为非零时,needPosition写入了当前要建立的头寸大小和方向,needPrice写入了以什么价格去建立该头寸
[*]tem = OpenCoverFor2Lines(MarketPosition(),firstLots,upperLine,lowerLine,wantStopShort,wantStopLong,needPosition,needPrice);
[*]}
交易开拓者函数一览表(文华对照)
交易开拓者文华
数学函数
绝对值AbsABS(X)
反余弦值AcosACOS(X)
反双曲余弦值Acosh
反正弦值AsinASIN(X)
反双曲正弦值Asinh
反正切值AtanATAN(X)
给定的X及Y坐标值的反正切值Atan2
反双曲正切值Atanh
沿绝对值增大方向按基数舍入Ceiling
从给定数目的对象集合中提取若干对象的组合数Combin
余弦值CosCOS(X)
双曲余弦值Cosh
余切值Ctan
沿绝对值增大方向取整后最接近的偶数Even
e的N次幂ExpEXP(X)
数的阶乘Fact
沿绝对值减少的方向去尾舍入Floor
实数舍入后的小数值FracPart
实数舍入后的整数值IntPart
自然对数LnLN(X)
对数LogLOG(X)
余数ModMOD(A,B)
负绝对值Neq
指定数值舍入后的奇数Odd
返回PIPi
给定数字的乘幂PowerPOW(A,B)
随机数Rand
按指定位数舍入Round
靠近零值,舍入数字RoundDown
远离零值,舍入数字RoundUp
数字的符号SignSGN(X)
正弦值Sin
双曲正弦值SinhSIN(X)
平方SqrSQUARE(X)
正平方根SqrtSQRT(X)
正切值TanTAN(X)
双曲正切值Tanh
取整TruncINTPART(X)
字符串函数
测试是否相同Exact
返回字符串中的字符数Len
大写转小写Lower
数字转化为字符串Text
取出文本两边的空格Trim
小写转大写Upper
文字转化为数字Value
颜色函数
黑色BlackCOLORBLACK
蓝色BlueCOLORBLUE
青色CyanCOLORCYAN
茶色DarkBrown
深青色DarkCyan
深灰色DarkGray
深绿色DarkGreen
深褐色DarkMagenta
深红色DarkRed
默认颜色DefaultColor
绿色GreenCOLORGREEN
浅灰色LightGrayCOLORLIGHTGREY
紫红色MagentaCOLORMAGENTA
红色RedCOLORRED
自定义颜色RgbRgb
白色WhiteCOLORWHITE
黄色YellowCOLORYELLOW
时间函数
当前日期CurrentDate
当前时间CurrentTime
日期时间值转化为字符串类型DateTimeToString
日期值转化为字符串类型DateToString
获得当前bar的日信息DayDAY
获得星期一值Monday
获得星期二值Tuesday
获得星期三值Wednesday
获得星期四值Thursday
获得星期五值Friday
获得星期六值Saturday
获得星期日值Sunday
获得当前bar的小时信息HourHOUR
将参数生成日期值MakeDate
将参数生成日期时间值MakeDateTime
将参数生成时间值MakeTime
获得当前bar的分钟信息MinuteMINUTE
获得当前bar的月信息MonthMONTH
获得当前bar的秒信息Second
将字符串转化为日期StringToDate
将字符串转化为日期时间StringToDateTime
将字符串转化为时间StringToTime
获得交易开拓者平台的当前日期时间SystemDateTime
将时间值转化为字符串类型TimeToString
获得当前bar的周信息WeekdayWEEKDAY
获得当前bar的年信息YearYEAR
数据函数
当前商品数据的bar总数BarCount
当前商品当前bar的状态值BarStatus
当前bar收盘价C
当前bar收盘价CloseCLOSE
当前商品当前bar的索引值CurrentBarBARPOS
当前bar日期D
当前bar日期Date
当前bar的最高价H
当前bar的最高价HighHIGH
当前历史数据是否有效HistoryDataExist
当前bar的最低价L
当前bar的最低价LowLOW
下一个bar的收盘价(未来函数)NextClose
下一个bar的最高价(未来函数)NextHigh
下一个bar的最低价(未来函数)NextLow
下一个bar的开盘价(未来函数)NextOpen
下一个bar的持仓量(未来函数)NextOpenInt
下一个bar的成交量(未来函数)NextVol
当前bar的开盘价O
当前bar的开盘价OpenOPEN
当前bar的持仓量OpenIntOPI
当前bar的时间T
当前bar的时间Time
当前bar的成交量V
当前bar的成交量VolVOL
属性函数
当前商品的时间周期数值BarInterval
当前商品的时间周期类型BarType
当前商品数据的买卖盘个数BidAskSize
当前商品的一个整数点价值BigPointValue
是否支持市价委托CanMarketOrder
是否支持做空CanShortTrade
是否支持Stop委托CanStopOrder
是否可以交易CanTrade
当前商品合约大小ContractSize
每张合约包含基本单位ContractUnit
当前商品交易的货币名称CurrencyName
当前商品交易的货币符号CurrencySymbol
当前商品的交易所名称ExchangeName
当前商品的初始保证金InitialMargin
当前商品的维持保证金MaintenanceMargin
当前商品的默认保证金MarginRatio
当前商品单笔交易限量MaxSingleTradeSize
当前商品最小变动量MinMove
当前商品的计数单位PriceScale
当前商品的点差Spread
当前商品的代码Symbol
当前商品的名称SymbolName
当前商品的类型SymbolType
行情函数(交易开拓者行情函数只对最后一个bar有效)
最新卖盘价格Q_AskPrice
最新卖盘量Q_AskVol
实时均价Q_AvgPriceAVPRICE
卖盘价格变化标志Q_AskPriceFlag
最新买盘价格Q_BidPrice
买盘价格变化标志Q_BidPriceFlag
最新买盘量Q_BidVol
当日收盘价Q_CloseCLOSE
当日最高价Q_HighHIGH
历史最高价Q_HisHigh
历史最低价Q_HisLow
内盘Q_InsideVol
最新价Q_Last
最新价变化标志Q_LastFlag
最新成交时间Q_LastTime
商品的现手Q_LastVol
当日最低价Q_LowLOW
当日跌停板价Q_LowerLimit
当日开盘价Q_OpenOPEN
当日持仓量Q_OpenIntOPI
持仓量变化标志Q_OpenIntFlag
当前商品的振幅Q_Oscillation
当前商品的外盘Q_OutsideVol
当前商品的昨日持仓量Q_PreOpenInt
当前商品的昨日结算价Q_PreSettlePriceSETTLE
当日涨跌Q_PriceChg
当日涨跌幅Q_PriceChgRatio
当前商品的最新笔升跌Q_TickChg
当日开仓量Q_TodayEntryVol
当日平仓量Q_TodayExitVol
当日成交量Q_TodayVolVOL
成交金额Q_TurnOver
当日涨停板价Q_UpperLimit
行情数据是否有效QuoteDataExist
账户函数(交易开拓者账户函数只对最后一个bar有效)
交易账户IDA_AccountID
对应交易商IDA_BrokerID
当前账户下当前商品买入持仓均价A_BuyAvgPrice
当前账户的买入冻结A_BuyFreeze
当前账户的买入保证金A_BuyMargin
当前账户的买入持仓A_BuyPosition
当前账户的买入持仓盈亏A_BuyProfitLoss
当前账户的动态权益A_CurrentEquity
撤单指令A_DeleteOrder
当前账户的可用资金A_FreeMargin
返回当前商品最后一个未成交单的索引A_GetLastOpenOrderIndex
返回当前商品的最后一个当日委托单索引A_GetLastOrderIndex
返回当前商品的未成交委托单数量A_GetOpenOrderCount
返回当前商品的当日委托单数量A_GetOrderCount
返回当前商品的未成交委托单买卖类型A_OpenOrderBuyOrSell
返回当前账户当前商品的某个委托单合同号A_OpenOrderContractNo
当前账户当前商品某个未成交委托单的开平仓状态A_OpenOrderEntryOrExit
当前账户当前商品的某个未成交委托单的成交价格A_OpenOrderFilledPrice
当前账户当前商品的某个未成交委托单的委托数量A_OpenOrderLot
当前账户当前商品的某个未成交委托单的委托价格A_OpenOrderPrice
当前账户当前商品的某个未成交委托单状态A_OpenOrderStatus
当前账户当前商品的某个未成交委托单的委托时间A_OpenOrderTime
当前账户当前商品的某个交委托单的买卖类型A_OrderBuyOrSell
当前账户当前商品的某个交委托单的合同号A_OrderContractNo
当前账户当前商品的某个交委托单的撤单数量A_OrderCanceledLot
返回当前公式应用的帐户下当前商品的某个委托单的开平仓状态。A_OrderEntryOrExit
返回当前公式应用的帐户下当前商品的某个委托单的成交数量。A_OrderFilledLot
返回当前公式应用的帐户下当前商品的某个委托单的成交价格。A_OrderFilledPrice
返回当前公式应用的帐户下当前商品的某个委托单的委托数量。A_OrderLot
返回当前公式应用的帐户下当前商品的某个委托单的委托价格。A_OrderPrice
返回当前公式应用的帐户下当前商品的某个委托单的状态。A_OrderStatus
返回当前公式应用的帐户下当前商品的某个委托单的委托时间。A_OrderTime
返回当前公式应用的帐户下当前商品的持仓盈亏A_PositionProfitLoss
返回当前交易帐户的昨日结存。A_PreviousEquity
返回当前交易帐户的浮动盈亏。A_ProfitLoss
针对当前帐户、商品发送委托单A_SendOrder
返回当前帐户下当前商品的卖出持仓均价A_SellAvgPrice
返回当前交易帐户的卖出冻结A_SellFreeze
返回当前交易帐户的卖出保证金A_SellMargin
返回当前帐户下当前商品的卖出持仓A_SellPosition
返回当前帐户下当前商品的卖出持仓盈亏A_SellProfitLoss
返回当前帐户下当前商品的当日买入持仓A_TodayBuyPosition
返回当前公式应用的交易帐户的当日入金A_TodayDeposit
返回当前公式应用的交易帐户的当日出金A_TodayDrawing
返回当前帐户下当前商品的当日卖出持仓A_TodaySellPosition
返回当前帐户下当前商品的持仓均价A_TotalAvgPrice
返回当前帐户下当前商品的总持仓A_TotalPosition
当前公式应用商品的帐户数据是否有效AccountDataExist
枚举函数
返回买卖状态的买入枚举值Enum_Buy
返回委托状态的已撤单枚举值Enum_Canceled
返回委托状态的正在撤单枚举值Enum_Canceling
返回委托状态的正在申报枚举值Enum_Declare
返回委托状态的已申报枚举值Enum_Declared
返回委托状态的已废除枚举值Enum_Deleted
返回开平仓状态的开仓枚举值Enum_Entry
返回开平仓状态的平仓枚举值Enum_Exit
返回开平仓状态的平今仓枚举值Enum_ExitToday
返回委托状态的全部成交枚举值Enum_Filled
返回委托状态的部分成交枚举值Enum_FillPart
返回委托状态的部分成交枚举值Enum_Sell
本帖最后由 满盘红 于 2012-7-28 00:40 编辑
交易开拓者函数一览表(文华对照)
其他函数
交易开拓者
文华
产生一个报警动作Alert
返回当前公式应用的报警设置AlertEnabled
输出用户字段的一个布尔值FieldBool
输出用户字段的一个数值FieldNumeric
输出用户字段的一个字符串FieldString
在指定文件中追加一行字符串FileAppend
删除指定文件FileDelete
获得当前执行的公式名称FormulaName
获取某个索引的全局变量值GetGlobalVar
在技术分析中输出交易指令组合在当前Bar的平均建仓成本I_AvgEntryPrice
在技术分析中输出交易指令组合在当前Bar的盈亏I_CloseEquity
在技术分析中输出交易指令组合在当前Bar的持仓手数I_CurrentContracts
在技术分析中输出交易指令组合在当前Bar的持仓状况I_MarketPosition
在技术分析中输出交易指令组合在当前Bar的浮动盈亏I_OpenEquity
执行真假值判断,根据逻辑测试的真假值返回不同的数值IIFIF(C,A,B)
执行真假值判断,根据逻辑测试的真假值返回不同的字符串IIFString
返回整型的无效值InvalidInteger
返回数值型的无效值InvalidNumeric
字符串的无效值InvalidString
在当前Bar输出一个布尔值PlotBool
在当前Bar输出一个数值PlotNumeric
在当前Bar输出一个字符串PlotString
在当前Bar输出两个值,用于在图表中当前Bar上画出连接两个值的线条PlotBar
设置某个索引的全局变量值SetGlobalVar
删除曾经输出的值Unplot
金融、数理统计(内建用户函数)
求卡夫曼自适应移动平均AdaptiveMovAvg
求平均AverageMA(X,N)
快速计算平均值AverageFC
求平均背离AvgDeviation
求平均价格AvgPrice
求平均真实范围AvgTrueRange
求皮尔森相关系数CoefficientR
求相关系数Correlation
求协方差Covar
求是否上穿CrossOverCROSS(X,Y)
求是否下破CrossUnder
求累计值Cum
求双指数移动平均DEMA
求趋势平滑Detrend
求偏差均方和DevSqrd
求极值Extremes
求Fisher变换Fisher
求反Fisher变换FisherInv
求调和平均数HarmonicMean
求最高HighestHHV(X,N)
求最高值出现的BarHighestBarHHVBARS(X,N)类似
求峰度系数Kurtosis
求线性回归LinearReg
求线性回归角度LinearRegAngle
求线性回归斜率LinearRegSlopeSLOPE(X,N)
求线性回归值LinearRegValueFORCAST(X,N)
求最低LowestLLV(X,N)
求最低值出现的BarLowestBarLLVBARS(X,N)
求最大值MaxMAX(A,B)
求中位数Median
求中点MidPoint
求最小值MinMIN(A,B)
求众数Mode
求动量Momentum
求N极值NthExtremes
求第N高NthHigher
求第N高出现的BarNthHigherBar
求第N低NthLower
求第N低出现的BarNthLowerBar
求抛物线转向ParabolicSARSAR(N, Step, Max)
求涨跌幅PercentChange
求威廉指标PercentR
求排列Permutation
求转折Pivot
求振荡PriceOscillator
求变动率RateOfChange
求平滑平均SAverage
求偏度系数Skewness
求标准差StandardDevSTD(X,N),STDP(X,N)
求和SummationSUM(X,N)
快速求和SummationFC
求波峰点SwingHigh
求波峰点出现的BarSwingHighBar
求波谷点SwingLow
求波谷点出现的BarSwingLowBar
求真实高点TrueHigh
求真实低点TrueLow
求真实范围TrueRange
求估计方差VariancePSVAR(X,N),VARP(X,N)
求权重平均WAverageSMA(X,N,M)
求指数平均XAverage
文华独有函数(交易开拓者没有直接对应的函数)
若X非0,则将当前位置到N周期前的数值设为1。无对应函数BACKSET(X,N)
求上一次条件成立到当前的周期数。无对应函数BARSLAST(X)
统计在N周期内满足X条件的周期数。无对应函数COUNT(X,N)
返回X的动态移动平均,其中A必须介于0及1之间。无对应函数DMA(X,A)
求X在N周期内的平滑移动平均。(指数加权)无对应函数EMA(X,N)
求X在N周期内的加权平均。(线性加权)无对应函数EMA2(X,N)
ZIGZAG之字转向(未来函数)ZigZag技术指标ZIGZAG(X,P,C)
取得ZIGZAG前M个波峰的值(未来函数)无对应函数PEAK(X,P,M,C)
取得ZIGZAG前M个波峰到当前周期的周期数。(未来函数)无对应函数PEAKBARS(X,P,M,C)
取得ZIGZAG前M个波谷的值。(未来函数)无对应函数TROUGH(X,P,M,C)
取得ZIGZAG前M个波谷到当前周期的周期数 (未来函数)无对应函数TROUGHBARS(X,P,M,C)
得到X向前累加直到大于A时的周期数。无对应函数SUMBARS(X,A)
求X在N周期内的三角移动平均。无对应函数TRMA(X,N)
求X在N周期内的时间序列移动平均。无对应函数TSMA(X,N)
求X在N周期内的平均绝对偏差。无对应函数AVEDEV(X,N)
数据偏差平方和。无对应函数DEVSQ(X,N)
判断A是否位于B及C之间无对应函数BETWEEN(A,B,C)
判断过去N个周期内是否有满足条件COND无对应函数EXIST(COND,N)
判断过去N个周期内是否一直满足条件COND无对应函数EVERY(COND,N)
判断过去N1到N2周期内是否一直满足条件COND无对应函数LAST(COND,N1,N2)
如果A在前N个周期内都小于B,本周期上穿B,则返回1。否则返回0。无对应函数LONGCROSS(A,B,N)
信号过滤函数无对应函数NOFILTER
如果该周期收阴则返回1,否则返回0。无对应函数ISDOWN
如果该周期平盘则返回1,否则返回0。无对应函数ISEQUAL
如果该周期收阳则返回1,否则返回0。无对应函数ISUP
取得当前周期是否为最后一根K线。无对应函数ISLASTBAR
当条件COND满足时,取当时的DATA的值,否则取得VALUEWHEN的前一个值。无对应函数VALUEWHEN(COND,DATA)
向上舍入。返回沿X数值增大方向最接近的整数。无对应函数CEILING(X)
向下舍入。返回沿X数值减小方向最接近的整数。无对应函数FLOOR(X)
当X为0时返回1,否则返回0。无对应函数NOT(X)
取反。无对应函数REVERSE(X)
本帖最后由 满盘红 于 2012-7-28 01:17 编辑
还是交易开拓者TB和文华的内建函数丰富啊,易盛的内建函数是不是太少了,难道都需要我们自己编“用户函数”吗? 一定要认真体会OpenCoverFor2Lines函数,为什么需要把开平仓算法包装到函数里。夹板是个半自动的系统,因为上下轨都需要作为参数输入。当你要转换成全自动系统的时候,那么上下轨就需要根据行情动态计算出来。把计算出来的值作为参数输入OpenCoverFor2Lines函数即可,如此程序就可以方便地拓展而不需要大改动。甚至你还可以再做一个函数用于动态计算上下轨。
OpenCoverFor2Lines函数代码
// 返回值: 1:有所动作,0:没有动作
// 返回值为非零时,把当前要建立的头寸大小和方向写入needPosition,把以什么价格去建立该头寸写入needPrice
// 返回值: 1:有所动作,0:没有动作
// 返回值为非零时,把当前要建立的头寸大小和方向写入needPosition,把以什么价格去建立该头寸写入needPrice
Params
Numeric currentPosition(0); // 当前头寸,可正可负
Numeric firstLots(0);
Numeric wantShort(120); // 开空仓位置
Numeric wantLong(8); // 开多仓位置
Numeric wantStopShort(0); // 空头止损的位置
Numeric wantStopLong(0); // 多头止损的位置
// 注意:以下两个都是引用变量!!!!
NumericRef needPosition; // 经过计算后的当前头寸,正数:建立多仓,负数:建立空仓,零:平光所有头寸
NumericRef needPrice; // 建立needPosition时的价格
Vars
Numeric tem;
Begin
// 14:55:00平掉当日所有头寸
if(time >= 0.1455 && currentPosition != 0)
{
needPosition = 0;
needPrice = close ;
return 1;
}
if(currentPosition == 0)
{
// 无仓,准备侍机开仓
if(close <= wantLong)
{
// 多头
needPosition = firstLots;
needPrice = wantLong;
return 1;
}
if(close >= wantShort)
{
// 空头
needPosition = -1 * firstLots;
needPrice = wantShort;
return 1;
}
return 0;
}
if(currentPosition > 0)
{
// 持多仓,准备止损或反转
if(close >= wantShort)
{
// 反转
needPosition = -1 * firstLots;
needPrice = wantShort;
return 1;
}
if(close <= wantStopLong)
{
// 止损
needPosition = 0;
needPrice = wantStopLong;
return 1;
}
return 0;
}
if(currentPosition < 0)
{
// 持空仓,准备止损或反转
if(close <= wantLong)
{
// 反转
needPosition = firstLots;
needPrice = wantLong;
return 1;
}
if(close >= wantStopShort)
{
// 止损
needPosition = 0;
needPrice = wantStopShort;
return 1;
}
return 0;
}
return 0;
End
学习 先顶后看. xuexi,冒视易盛刚开始推程序化 现在易盛的函数很多了{:soso_e100:}
页:
[1]