版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Easylanguage的下单指令1 基本指令Mc新版本中,开仓指令是Buy和SellShort,平仓指令是Sell和BuyToCover。下面是mc与ts两个版本的下单指令对比:指令版本TradeStation2000iTradeStation8MultichartsMulticharts实例建多仓BuyBuyBuyBuy(“war1”) next bar at market;建空仓SellSellShortSellShortSellShort(“war2”) next barat market;平多仓ExitLongSellSellSell(“war3”) next bar at mark
2、et;平空仓ExitShortBuytoCoverBuytoCoverBuyToCover(“war4”) next barat market;2. 指令详细分析Buy(“Buy”) 2 contracts next bar at Market; /在下个bar刚开始以市价买入2手Buy 下单动作,代表开多仓。这一类关键字还有:SellShort 开空仓;Sell 平掉多仓;BuyToCover平掉空仓“BUY”动作标识(EntryLabel,通常注明为什么入场/出场)。该标识紧跟在下单动作后面,并置于小括弧中, 是用来区分多个入场/出场情景的,不能重复。2 Contracts头寸大小(Tra
3、deSize)。当前代表交易2手,2 contracts=2 contract=2 shares=2 share。该字段可以省略,省略代表使用默认头寸大小(默认头寸大小,请参见信号属性)。Next Bar下单时间。只有两个选择:this bar 和 next bar, 每句下单指令必有这二者之一。At market下单价位。如果下单时间是this bar,则下单价位只能是on close:this bar on close=this bar close=this bar,代表当前bar结束时进行市价交易;如果下单时间是next bar则很灵活,可以分为市价和限价,市价例如: at open ,
4、at market等,限价例如:at 4330 stop, at 4550 limit , at 4660, at High+5等;3 仓位管理假设当前已开多仓(marketPostion=1),则:>>可执行Buy 指令来加仓Buy(“buy1”) 2 contracts next bar at market; 执行该指令相当于在原来的仓位基础上增加2手(和第一次开仓指令没啥区别,但是需要注意:信号属性中必须选中复选框“同一时刻,允许最大N个同向进场”)。>>可执行Sell指令来平仓Sell(“sell2”) next bar at market; 执行该指令相当于平
5、掉所有的多仓。Sell(“sell3”) 4 contracts next bar at market; 执行该指令相当于平掉每个Buy进场的4手多仓(若某个进场Entry不满4手,则有几手平几手)。Sell(“sell4”) 4 contracts total next bar at market; 执行该指令相当于平掉前4手多仓。Sell(“sell5”) From Entry(“war1”) next bar at market; 执行该指令相当于平掉进场War1的所有仓位。Sell(“sell5”) From Entry(“war2”) 4 contracts next bar at
6、market; 执行该指令相当于平掉进场War2的4手仓位(若不满4手,则有几手平几手)。>>可执行SellShort指令来反转仓位,变多仓为空仓。SellShort(“sellShort6”) 5 contracts next bar at market;执行该指令相当于先平掉所有多仓,再建5手空仓。注意:这里信号必须保留有过去的仓位记录,如果中途因某种原因丢失了仓位记录,那系统只会直接建5手空仓。4市价与限价Buy(“Buy1”) this bar on close;Buy(“Buy1”) this bar close;Buy(“Buy1”) this bar;Buy(“Buy
7、2”) next bar at open;=Buy(“Buy2”) next bar at market;这些是市价交易,而限价交易都有价格限定:Buy(“Buy3”) next bar at 4300;=Buy(“Buy3”) next bar at 4300 limit;(表示在4300的范围内可交易)=Buy(“Buy3”) next bar at 4300 or lower;Buy(“Buy4”) next bar at 4300 stop; (stop单,表示超出4300的范围则可交易)=Buy(“Buy4”) next bar at 4300 or higher;注意:上海交易所本
8、身不支持市价交易,达钱进行了变相处理,比如市价买入,相当于使用涨停价去限价买进,市价卖出,相当于使用跌停价去限价卖出。5Stop与LimitLimit 标准限价单的标识,可省略。Stop 限价单的反向扩展,常称为stop单。按照我的个人理解,限价单的作用无非就是限制滑价, Stop单的用途完全不同,stop单主要用于突破系统,如下图多方与空方在阻挡线3600处争夺,你现在还不知道战争的结局,但这时候你可以确定自己的战略:只要向上突破3600超过2点,就认为后期是趋势上升的,立刻买进!那么现在就可以下stop单:If(marketpostion<>1)thenbuy(“breakou
9、tLong”) next bar at 3600+2 stop;/只要下个bar达到3600+2点 就系统自动买进可以从另一个角度再去理解limit和stop:Buy(“Buy3”) next bar at 4300;=Buy(“Buy3”) next bar at 4300 limit;(表示在4300的范围内可交易)=Buy(“Buy3”) next bar at 4300 or lower;Buy(“Buy4”) next bar at 4300 stop; (stop单,表示超出4300的范围则可交易)=Buy(“Buy4”) next bar at 4300 or higher;Se
10、llShort(“Short3”) next bar at 4300;=SellShort(“Short3”) next bar at 4300 limit;(表示在4300的范围内可交易)=SellShort(“Short3”) next bar at 4300 or higher;SellShort(“Short4”) next bar at 4300 stop; (stop单,表示超出4300的范围则可交易)=SellShort(“Short4”) next bar at 4300 or lower;6细微区别This bar on close 、next bar at open 、ne
11、xt bar at market首先,next bar at open =next bar at market,其次this bar on close是在当前bar的结束时间进行市价交易,next bar at open(market)是在下一个bar的开始时间进行市价交易。对于连续k线来说(假设无跳空)当前bar的收价和下个bar的开价是一样的,所以交易价格上保持一致。不过,毕竟this bar就是this bar,next bar就是next bar,交易的时间是计算在了不同的bar上,在同一条件下执行这两条指令,二者在同时刻的barssinceentry是不同的。对于有跳空的k线来说,t
12、his bar on close真的能在当前bar交易成功吗?还是和next bar at open一样到了下个bar才实际交易成功?我也不知道!这需要清楚其指令的内部原理才会明白。7.内置止损1>. 止损 SetStopLoss(Amount) 当亏损达到XX元时,平仓2>. 止盈 SetProfitTarget(Amount) 当利润达到XX元时,平仓3>. 保本止损 SetBreakEven(Profit) 当利润达到XX元时,启用“保本”4>. 吊灯止损SetDollarTrailing(Amount) 当与最大收益相比,一旦回落XX元,平仓SetPercent
13、Trailing(Profit,Percentage) 当利润达到XX元后,一旦利润回撤YY%,平仓这些内置止损中,止损和止赢默认都是针对每手合约的,如果是整体资金止损,需要设置在前面加入指令:SetStopPosition;然后使用setstoploss和setprofitTarget就代表总损失(总盈利)达到Amount后立即平仓 原文地址:EasyLanguage/PowerLanguage 策略语言研究作者:fractal1止损的函数用什么?请教前辈,止损应该怎么写?2种情况1.到价格触及到-5%时。2.到收盘价触及到-5%时。以多单的止损为例1、sell next bar at en
14、tryprice*0.95 stop;2、if close<entryprice*0.95 then sell next bar at market;2向高手老手请教,在ts中如何实现资金管理?建议你设置止损,按能接受的止损来设置头寸,就是ANP方式AccountBalance = InitialBalance + netprofit;DollarRisk = AccountBalance * rate;LTT=IntPortion(DollarRisk/stoploss);3函式介绍 如何用EL表示期货涨停,跌停价最近有同学问到这个问题,现整理出来供大家一起参考学习由于中国商品期货的涨
15、跌停系数会随着假日时间的变动而变动(中国商品这个感觉很麻烦,需要随时关注交易所公告来进行调整),以下是具体的一个例子的写法:1. Inputs:begintime(1100608),endtime(1100912),abnormalratio(0.2),normalratio(0.1);2. vars:upprice(0),downprice(0);3.4. if time>=begintime and time<=endtime5. then begin6. upprice=Closed(1)*(1+abnormalratio);7. downprice=Closed(1)*(1
16、-abnormalratio);8. end 9. else begin10. upprice=Closed(1)*(1+normalratio);11. downprice=Closed(1)*(1-normalratio);12. end; 复制代码4软件使用讨论 如何将Tb代码转为MC代码下面是我在转换TB代码到easylanguage的时候做的日志记录,有些是那个策略特有的,肯定还有很多漏掉的,我没空整理了,大家可以参考下1 变为then begin考虑then换行后begin如果在if else中注意else后没有thenwhile中begin前不需要then2 变为end;如果在i
17、f else中注意else钱的end没有分号3 Params变为Inputs:注意别忘记分号4 Vars变为variables:注意别忘记分号5 声明类型去掉Numeric rangeMove(2);中的Numeric全部去掉6 声明后的分号改为,注意参数和变量的最后一个保持分号7 声明类型缺少默认值的补上8 逻辑运算中,等号=变为=,不等号!=变为<>9 注释全部去掉10下单指令Bool Buy(Numeric Share=0,Numeric Price=0,Bool Delay=False)Share 买入数量,为整型值,默认为使用系统设置参数;Price 买入价格,为浮点数,
18、默认=0时为使用现价(非最后Bar为Close);Delay 买入动作是否延迟,默认为当前Bar发送委托,当Delay=True,在下一个Bar执行。Buy xxx contracts next bar at xxx stop;11 Ceiling Tb中两个参数Ceiling(timemin/BarInterval, 1)改为Ceiling(timemin/BarInterval)12 &&变为and |变为or13 ContractUnit()变为currentContracts X14 变量名range->myrange15 GetGlobalVar->GVG
19、etNamedDouble16 IntPart->IntPortion17 InvalidNumeric->-118 GVGetNamedDouble(40变为GVGetNamedDouble("global40"set同理19 if后面的括号,mc可以有可以无,但是tb必须有20 mc的maxlist函数 对应 tb的max ,minlist min21 mc的print对应Commentary22 mc中的变量默认是序列变量 Tb中的变量主意区分普通变量和序列变量,如果同样是序列变量:需要重设变量值isBreak=isBreak1;k1=k11;J1=J11
20、;5程序代码分享 深入Numeric资料形态在MC中,资料形态有三类 Numeric, TrueFalse 与 String,其中Numeric可以再细分成Int、Float与Double。如果只宣告变数为Numeric,MC有自动帮你选择适当的数值形态,有些情况下,MC无法准确的判断时,有可能会出现使用Double储存Int形态的资料,如此一来,系统效能将会大大降低。如果你可以确定宣告变数myVars的资料形态为整数时,下次建议可以考虑用 1. vars: int myVars(0); 复制代码取代 1. vars: myVars(0); 复制代码6程序代码分享 提供一个移动止损的方法移动止
21、损的方法有很多,可以控制亏损百分比,或者控制亏损金额,我先抛个砖,大家继续:stop1=0.02; /2个百分点止损myStop=2990;/根据商品的价格不同而定义if marketposition >0 then beginif c*(1-stop1) > myStop then myStop = c*(1-stop1);end;if marketposition <0 then beginif c*(1+stop1) < myStop then myStop = c*(1+stop1);end;if marketposition >0 and c <
22、myStop then sell next bar at market;if marketposition <0 and c > myStop then buytocover next bar at market;再提供一种方法:2%止损:if marketposition>0 and entryprice>close and (entryprice-close)/entryprice>=2% thensell next bar at market;if marketposition<0 and entryprice<close and (close-
23、entryprice)/entryprice>=2% thenbuytocover next bar at market;7当日输N次不交易做当冲的时候,最怕盘整盘。遇到盘整盘时,顺势系统很容易被修理。为了避免当日亏损太多次,可以使用 DailyLosers 这个函数以下是当日输N次不交易的写法if DailyLosers(date)<=N then begin1. code of your entry signal2. end; 复制代码8程序代码分享 直接在POWER EDITOR看系统讥效常常要不断的改程序,让系统变好。不过当每次做点细小的修改,就要跑一次回侧报告,有点不方便
24、。尤其有时候只是要让DRAWDOWN变小。为了让开发过程更容易,我在程式码后段加入下面程式码,这样一来,只要在编译后马上可以看到这次修改是否有让系统变好,不需要再到回侧报告去找。虽然不是很详细,不过有时后对我来说已经足够了,感觉很方便。 1. once(LastBarOnChart_s) begin2. messagelog(" Initial Capital: ",InitialCapital);3. messagelog(" Net Profit: ",netprofit);4. messagelog(" Gross Profit: &qu
25、ot;,grossprofit);5. messagelog(" Gross Loss: ",grossloss);6. messagelog(" Max Drawdown: ",maxiddrawdown);7. messagelog("Max Contracts Held: ",MaxContractsHeld);8. messagelog(" MaxConsecWinner: ",MaxConsecWinners);9. messagelog(" MaxConsecloser: ",max
26、conseclosers);10. messagelog(" Commission: ",commission);11. messagelog(" Largest Win Trade: ",LargestWinTrade);12. messagelog("Largest Loss Trade: ",largestlostrade);13. end; 复制代码本主题由 futuregirl 于 2010-7-15 15:55 设置高亮收藏 分享 9函式介绍 【分享总结】Easylanguage的五种输出方式当Easylanguage识别
27、出某种信号后,可以有五种方式向你传递消息,请选择自己喜欢的:一、控制台output二、图表chart 三、文件file 四、提示音wav 五、信息视窗alertwindow 我们将逐一介绍Easylanguage的五种输出方式.rar10程序代码分享 减仓别忘了加 total 这个保留字在MC中,第一次建仓或是要加仓时,可以用下面的语法 1. buy ("signalName") N contracts next bar at market;2. sellshort ("signalName") N contracts next bar at marke
28、t; 复制代码当要减仓时则要用 1. sell ("signalName") M contracts total next bar at market;2. buytocover ("signalName") M contracts total next bar at market; 复制代码如果没有加 total,MC会把你所有仓位都平仓掉。本主题由 futuregirl 于 2010-7-15 15:24 设置高亮11编程求助 如何根据条件分段plot?MC里用plot画的都是连续的线条,我要画一段一段分开的线条,如何画,我加了if然后plot也不行
29、。比如我之要time>=0910 and time<=1450这一段的ma,怎么画?Code:if time >=1000 and time <=1100 thenplot1( AverageFC( c, 9 ) , "Avg" ) ;setting:设置指标 -> 样式, 更改画线 Type为 Point or Cross12如何按资金的百分比开仓自己找到答案,自己回一个:Inputs:initCapital(100000);Variables:RiskPercent(0.3),TotalEquity(0.0),SetShareSize(0)
30、;TotalEquity=initCapital+NetProfit+OpenPositionProfit;SetShareSize= TotalEquity * RiskPercent/Close;Buy("Entry") SetShareSize shares Next Bar At .sell("Exit") All shares Next Bar At .13程序代码分享 计算当日做多的次数在日内交易中,我们常常需要知道今天作多几次,以下是我的编程方式,与大家分享 1. vars:2. mp(0),3. mpd(0),4. myLongNumbe
31、r(0);5.6. mp = i_CurrentContracts;7. mpd = i_MarketPosition;8.9. if date<>date1 then myLongNumber = 0 else begin10. if mpd=1 and mpd1=-1 then begin11. myLongNumber=myLongNumber1+1;12. end else begin13. if mp>mp1 and i_MarketPosition>0 then14. myLongNumber=myLongNumber1+115. else16. myLon
32、gNumber=myLongNumber1;17. end;18. end;19.20. DailyLongNumber = myLongNumber; 复制代码14编程求助 不等next bar就买卖?MC里关于买卖的操作,都是在 buy/sellshort next bar 上实现的,最早的入市也是buy/sellshrot this bar on close来实现的。设想:把data1的时间周期设置成1分钟甚至tick图,然后data2来做正常的系统条件判断,这样是不是就能实现类似于条件满足就马上买入卖出的操作呢?求Max老师详细的说明下这个用法,最好能配合着例子,我想有很多人想要了解这
33、点的 .Dannie 发表于 2010-8-27 08:45 首先要把IntraBarOrderGeneration打开(在Format Signal里的Intra-bar Order Generation),接著程式码必须要判断目前的tick是属于当根bar的哪个位置(可以在barStatus这个保留字得知)。这样程式码就会每根tick就会执行一次。15在盤中常常發現某些整點時間或特定時間週期會突然有許多系統單同時出來特別是長週期的突破系統,通常會在突破後的下一個整點時間全數出唬因此出現滑價或買不到好價位針對這個問題,可以用語法來解決,讓你比別人快幾秒進場,甚至可以吃點別人的豆腐一般程序化交
34、易系統都往往會在這根bar結束(buy this bar at close)或是下根bar開始(buy next bar at open)時送出委託單,如果你可以在這根bar結束前就進場,自然比別人更佔便宜!這裡把送出委託單的時間在往前移10秒,必須啟動IntrabarOrderGeneration才能正常咦鳌在Multicharts裡設置 Format(格式)->Signal(信號)->Fomat(設置)->IntrabarOrderGeneration(Bar內產生委託)語法如下,請回覆本帖即可觀看。本帖隐藏的内容1. vars:2. intrabarpersist wa
35、itingForBuy(false),3. intrabarpersist mySec(0),4. intrabarpersist myEntrySec(0);5.6. if barstatus=0 then begin7. mySec = currenttime_s;8. myEntrySec = currenttime_s+barinterval*60-10; 9. end else begin10. mySec = mySec1;11. myEntrySec = myEntrySec1;12. end;13.14. if your entry condition then begin15
36、. waitingForBuy = true;16. end;17.18. if waitingForBuy and currenttime_s>=myEntrySec then begin19. buy next bar at open;20. waitingForBuy =false;21. end; 16编程求助 出场信号为买入价格获利3%怎么写也可以試試1. if marketposition<>0 then setprofittarget(entryprice*0.03*bigpointvalue); 本帖最后由 samwjwj 于 2010-9-1 12:49 编
37、辑if marketposition=1 then sell next bar at entryprice*1.03% limit;别叫老师,俺才刚上路呢17函式介绍 entryName与exitName 的使用当系统越来越大,进出场信号也会越来越多,如何知道目前进场是哪个信号所触发呢?可以使用 entryName 以及 exitName 这两个保留字,这样就能依照不同的进场信号来做不同的处理。18函式介绍 BarStatus想请问各位高手,若是在多单的情况下,当日盘中价格比昨日收盘价低2%以上,则盘中在( 昨日收盘价*0.98 )这个价位自行停损,该怎么写?多谢! P.s假設使用日线的狀況
38、常常我们都用5分线或15分线,但实际在交易时,市场的资料是不断地近来,为了抓住下单的先机,可以启动 Intra-ber order generation,并且在程序中调用不断进来的TICK资料。BarStatus这个程序是让我们知道目前这个TICK是当下Chart中这跟Bar的TICK形态,回传值的意义如下:· 2 = the closing tick of a bar · 1 = a tick within a bar · 0 = the opening tick of a bar (relevant only for strategies using Open
39、 Next Bar order actions) · -1 = an error occurred19函式介绍 equity有關的保留字哂门c分析有朋友问到在easy language可不可以用equity来做分析运用,答案是肯定的。介绍几个保留字的运用:capital:权益数openpositionprofit:未平仓损益i-closedequity :平仓后累计损益如果要计算30跟bar的权益数标准差语法如下:vars: stv(0);stv=StdDev(capital,30);如果要计算30跟bar的平均权益数语法如下:vars:average_capital(0);aver
40、age_capital =average(capital,30);上边的capital与i-closedequity这两个保留字,是不是只在ts8以上版本有效?好像别的地方都没有相关的信息。 .domodo 发表于 2010-8-26 11:20 自定一个函数capital = InitialCapital + i_OpenEquity;找不到 closedequity 可以试试 i_ClosedEquity20使用不同時間尺度的data (以同時使用5Min線與60分線為例)想像有一個系統是這樣的,當60分線的rsi處於鈍化狀態(三根bar大於70)且5Min線的rsi在超賣區(小於30)則
41、進場作多.在MultiChart要怎麼實現呢?這裡需要用到兩個data 5分線與60分線。首先把兩個data都加到圖表中,一個是五分線,一個是30分線1. value1 = rsi (c,20);2. value2 = rsi(c of data2, 20) of data2;3. if countif(value2>70,3) of data2 =3 and value1<30 then4. buy next bar at market; 复制代码21程序代码分享 ELCollection for Multichartsarray不够用吗?可以试试前人开发的外部函数,让Multi
42、charts也能使用List与Map两种资料型态。ELCollection.rar22程序代码分享 EA能帮我实现下面的想法吗?如果现在是13:29分,我手中的策略是如果下午的行情开盘高于上午收盘时以上午收盘的价格+1点买入,但是如果出现高开的情况,我想撤单,然后现价买入,可否实现?回复 2# Lee 的帖子将你的文自转成Easy Language,我的写法如下1. if time=1130 then value1=c;2. if time=1330 and o>value1 then buy next bar at c1+1 limit; 复制代码对于高开的情况,可能需要更精确的定义,
43、比方说什磨情况下叫高开?或是说这跟bar没做到,下跟bar市价买进?23程序代码分享 Better Volume IndicatorInputs: LowVol(True), ClimaxUp(True), ClimaxDown(True), Churn(True);Variables: BarColor(Cyan),UseUpTicks(false);If BarType > 1 and UseUpTicks=false then beginIf C > O and Range <> 0 then Value1 = (Range/(2*Range+O-C)*UpTic
44、ks;If C < O and Range <> 0 then Value1 = (Range+C-O)/(2*Range+C-O)*UpTicks;If C = O then Value1 = 0.5*UpTicks;Value2 = UpTicks-Value1;End;If BarType <= 1 and UseUpTicks then beginValue1 = UpTicks;Value2 = DownTicks;End;Value3 = AbsValue(Value1+Value2);Value4 = Value1*Range;Value5 = (Valu
45、e1-Value2)*Range;Value6 = Value2*Range;Value7 = (Value2-Value1)*Range;If Range <> 0 then beginValue8 = Value1/Range;Value9 = (Value1-Value2)/Range;Value10 = Value2/Range;Value11 = (Value2-Value1)/Range;Value12 = Value3/Range;End; 24软件使用讨论 盘中止损的程序语言?想请问各位高手,若是在多单的情况下,当日盘中价格比昨日收盘价低2%以上,则盘中在( 昨日收
46、盘价*0.98 )这个价位自行停损,该怎么写?多谢! P.s假設使用日线的狀況我来试试看1. if market position =1 and close0<close1*0.982. then sell next bar at market; 复制代码要在软件中设定设置inter-bar交易25easylanguage使用动态链接库(DLL)听说EL可以通过动态链接库(DLL)调用C#,请问具体操作方法是什么,能举个例子吗?回复 1# Steven 的帖子可以参考附件C#并不适合开发 UNMANAGED DLL,建议还是直接使用C或C+会比较容易一些easylanguage_exte
47、nsion_sdk.pdf回复 1# Steven 的帖子举例external: "C:abccount.dll", int, "checkname",string;"C:abccount.dll" 外部档案存放的位置int DLL传出值(整数)"checknam" DLL输出名(自定义)string DLL收到的值 (字串)if value1 = checkname("NO1") then.25程序代码分享 判断图形的时间尺度,并在程式码中加入防呆机制本帖最后由 Max 于 2010-6-17
48、 11:58 编辑当我们用EL开发时,有些观念只适用在5分K线,有些观念只适用于日线,为了避免使用错误,我们可以在程式编码里面加入一些防呆机制,如下1. once begin2. if bartype<>0 then3. raiseruntimeerror("This indicator only for tick bar chart");4. end; 复制代码这里用到两关键字,bartype与raiseruntimeerrorbartype回传直代表的意义如下0 = TickBar1 = Intraday2 = Daily3 = Weekly4 = Mont
49、hly5 = Point & Figure 至于raiseruntimeerror这个程序会让MULTICHARTS在右下方跳出错误信習,并将该分析的状态切换到"关"26函式介绍 程式码中调用交易成本每次交易的成本包含手续费与滑价,我们可以在程式码中使用commission 以及 slippage 来调用这两个设定,比方说希望损益平衡就出场观望,可以这样写once costPoint = (slippage+commission)/bigpointvalue;1.2. if marketposition>0 and c<=(i_AvgEntryPrice
50、+costPoint) then begin3.4. sell ("BrkEven_EL") next bar at market;5.6. end;7.8. if marketposition<0 and c>=(i_AvgEntryPrice+costPoint) then begin9.10. buytocover ("BrkEven_ES") next bar at market;11.12. end; 复制代码27 本帖最后由 Max 于 2010-6-22 12:30 编辑回复 1# futuregirl 的帖子在 easylan
51、guage 中,ATR的调用函数为AvgTrueRange,以多单止损为例,我的语法如下,提供给大家参考 1. if marketposition>0 and c cross under (entryprice-AvgTrueRange(20) then2. sell next bar at market; 复制代码28 出场后观望N根BAR在作下一笔交易常常我们会希望出场后先观望一阵子,在作进场的判断,以下是我的写法,这方法只适用于日内交易,跟大家分享1. vars:2. waitingBar(0), NBars(20);3. if ExitsToday(date)>0 and
52、marketposition=0 then4. waitingBar = barssinceexit(1)5. else6. waitingBar = 99999;7.8. if waitingBar>Nbars then begin9. your entry code10. end; 复制代码29程序代码分享 当日亏损N点后,出场并当日不交易有时候会遇到当日的盘形不适用于系统的交易逻辑,当下最好就是先出场观望。"当日亏损N点后,出场并当日不交易"是系统风险控管的最后一道防线,以下是我的写法,与大家分享1. vars:2. dailyInitCapital(0),3.
53、 lossPoint(50),4. myCapital(0),5. stopTradeDaily(false);6.7. if date<>date1 then stoptradeDaily=false;8.9. mycapital = InitialCapital + i_OpenEquity;10. if date<>date1 then11. dailyInitCapital = mycapital12. else13. dailyInitCapital = dailyInitCapital1;14.15. if mycapital-dailyInitCapita
54、l<-lossPoint*bigpointvalue then begin16. if marketposition>0 then sell ("LossLimit_EL") next bar at market;17. if marketposition<0 then buytocover ("LossLimit_ES") next bar at market;18. stoptradeDaily = true;19. end;20.21. if stopTradeDaily=false then begin22. your entr
55、y code23. end; 复制代码30一天只交易一次的语法很多人问过我这个问题,就在这个园地提出我的写法如果其他的人有不同的语法,多多指教vars:go (true);if marketposition <> 0 then /当有部位后,交易停止go =False;If date<>date1 then / 当换日后,交易开始go =true;IF condition and go then /如果买进条件成立而且可以交易就买进 buy("buy") next bar at close;回复 1# franlin 的帖子另一种方式也可以if co
56、nditions and EntriesToday(date)=0 then beginend;EntriesToday 需要有输入日其当作参数然后回传该日其的进场次数input:TN(1);var:tradeNum(0);if date<>date1 thentradeNum=0;if conditions and tradeNum<TN thentradeNum=tradeNum1+1;buy;end;这样也行。如此,还能测试不同进场次数的效果31请问如何在图上显示字?如果我想在走势图上写字,比如,在买进信号旁边写上“买进做多”,在平仓信号旁边写上“多仓平仓”,但是好像t
57、s/mc没有直接在图上写字的函数,应该如何办呢?谢谢if marketposition =0 and condition1 then buy("买进作多") next bar at market;if marketposition =1 and condition2 then sell("多单平仓") next bar at market;32setstoploss實單計算環境6.0 beta2 ,實單,下單版2.0.0.1,limit+stop不預掛結果setstoploss(金額)金額含手續費及滑價設定值計算進場價為order and position tracker/strategy orders:Filled,或者是進場根open價其中之一(我不確定哪一個,測試時剛好一樣)因為我看回測清單是的進場價<>Filled=進場根open價也就是假設filled上(或進場根open價)都是寫8000點,而手續費及滑價設定共1000,金額填4000多單停損價格=8000-(4000-1000*2)/200=7990經費有限只測試一次,若有朋友不同結果還請指點,謝謝且實單測試時,若setstoploss價
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《会计从业总账管理》课件
- 《广场规划设计》课件
- 寒假自习课 25春初中道德与法治八年级下册教学课件 第三单元 第六课 第4课时 国家监察机关
- 短信营销合同三篇
- 农学启示录模板
- 理发店前台接待总结
- 儿科护士的工作心得
- 探索化学反应奥秘
- 收银员的劳动合同三篇
- 营销策略总结
- 血糖仪使用规范课件
- DB21-T 2931-2018羊肚菌日光温室栽培技术规程
- 贵州省黔东南州2023-2024学年九年级上学期期末文化水平测试化学试卷
- 《空调零部件介绍》课件
- 2024年度医院内分泌与代谢科述职报告课件
- 手术室无菌操作流程
- 农业机械控制系统硬件在环测试规范
- 翁潭电站大王山输水隧洞施工控制网设计说明书
- 隆胸术培训课件
- 钢筋焊接培训课件
- 行政内勤培训课件
评论
0/150
提交评论