画线下单功能求解答 [MC]
-
MC用户求助:
您说的”修改成为bar内开仓,系统的开仓和平仓就不按照之前的想法来开仓了“这句话不是太理解您的意思。
一、您是基于MC自带的trendline LE和trendline SE进行的修改,但是MC自带的这个策略是可以实现跌破开多单、突破开空单的。
二、您使用的判断语句是close<TL_GetValue(TLRef, Date, Time)没有问题,开启bar内的情况下,close是实时的价格,当实时价格在趋势线以下时执行多单开仓。
三、并且您执行的是市价单,所以当条件满足时就发送市价单并且会立即成交,不会在下一笔tick条件不满足的情况下取消之前的委托单。
四、代码中没有止损语句。 -
MC回复讨论一:
您说的”修改成为bar内开仓,系统的开仓和平仓就不按照之前的想法来开仓了“这句话不是太理解您的意思。
一、您是基于MC自带的trendline LE和trendline SE进行的修改,但是MC自带的这个策略是可以实现跌破开多单、突破开空单的。
二、您使用的判断语句是close<TL_GetValue(TLRef, Date, Time)没有问题,开启bar内的情况下,close是实时的价格,当实时价格在趋势线以下时执行多单开仓。
三、并且您执行的是市价单,所以当条件满足时就发送市价单并且会立即成交,不会在下一笔tick条件不满足的情况下取消之前的委托单。
四、代码中没有止损语句。 -
MC回复讨论二:
您看下这次的代码,是增加了止损的,但是·····每根K线上都是止损·····
[IntrabarOrderGeneration = True]
inputs:
TLRef( 1 ) ,
Sstop( 5 ) ;
variables:
var0( TL_GetBeginDate( TLRef ) ),
var1( TL_GetBeginTime( TLRef ) ),
var2( false ) ;
var2 = ( Date = var0 and ( BarType = 2 or ( BarType = 1 and Time >= var1 ) ) )
or Date > var0 ;
condition1 = var2 and Close < TL_GetValue( TLRef, Date, Time ) ;
if condition1 then
sellshort next bar at market;
value1 = Close;
condition2 = Close > value1 + Sstop;
if condition2 then
buytocover next bar at market; -
MC回复讨论三:
抱歉,回复的有点晚!
这个应该是您的触及压力线卖空的信号吧,那么您的触及支撑线做多的信号的代码应该和做空的代码很像,猜测应该是对称的。
一、if condition1 then
sellshort next bar at market;
value1 = Close;
这句语句应该是当条件满足,然后做空并且将当时的close价格赋值给value1,方便用于计算止损价,但是这句写错了,因为value1在if的条件语句之外,是实时更新的,应该写成如下形式:
if condition1 then begin
sellshort next bar at market;
value1 = Close;
end;
二、由于在开启bar内交易下,close是实时价格,而您的代码中value1实质上和close是实时相等的,所以条件condition2在sstop为非负值的情况下永远返回false,也就是说
if condition2 then
buytocover next bar at market;
语句中的止损永远不会执行。
三、这部分也是最严重的问题,您说您的每根K线都是止损的,问题出在condition1,也就是您做空的条件上,对应的您做多的条件应该是var2 and Close>TL_getvalue(TLRef,date,Time);当价格在压力线和支撑线之间时,做空的语句会执行,因为做空的条件满足了,同时也会做多,因为做多的条件也满足了,这样就导致了反复进场,同时出场。您需要修改一下您的进场条件。 -
MC回复讨论四:
抱歉,回复的有点晚!
这个应该是您的触及压力线卖空的信号吧,那么您的触及支撑线做多的信号的代码应该和做空的代码很像,猜测应该是对称的。
一、if condition1 then
sellshort next bar at market;
value1 = Close;
这句语句应该是当条件满足,然后做空并且将当时的close价格赋值给value1,方便用于计算止损价,但是这句写错了,因为value1在if的条件语句之外,是实时更新的,应该写成如下形式:
if condition1 then begin
sellshort next bar at market;
value1 = Close;
end;
二、由于在开启bar内交易下,close是实时价格,而您的代码中value1实质上和close是实时相等的,所以条件condition2在sstop为非负值的情况下永远返回false,也就是说
if condition2 then
buytocover next bar at market;
语句中的止损永远不会执行。
三、这部分也是最严重的问题,您说您的每根K线都是止损的,问题出在condition1,也就是您做空的条件上,对应的您做多的条件应该是var2 and Close>TL_getvalue(TLRef,date,Time);当价格在压力线和支撑线之间时,做空的语句会执行,因为做空的条件满足了,同时也会做多,因为做多的条件也满足了,这样就导致了反复进场,同时出场。您需要修改一下您的进场条件。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容