| / | 论坛 |
|
azqyy
2009.06.30 12:56
用限制订单的数目的方法一般可以,但是对于止损或者止盈后就没办法了。能否编写个代码让此跟K线仅仅能交易一次? 拜谢!请高手指点。 看看大家有什么好方法。通过历史记录的办法也行,但是感觉有点麻烦。 |
|
对于 Ahmed Soliman (CodersGuru)的访谈 对于Ahmed Solman (CodersGuru)的采访中我们提出了几个疑问。在他的访谈中他表明已经吸取去年锦标赛失利的教训。下定决心战胜其他智能交易按照他的观点,有效的金钱管理能够补偿智能交易出现的某些错误。 这一年度的锦标赛, Ahmed 将提交不寻常的智能交易,它的工作原理不会以技术分析为基础... |
|
liu2730
2009.07.01 14:59
你说对了 ,最严谨的办法就是历尽历史订单,记录当前k线开盘后所开的历史订单,再结合当前未平订单综合判断。 需要注意的是ea历尽历史订单的数量取决于你当前帐户历史显示的订单数量。 |
|
azqyy
2009.07.01 17:51
我还有一个想法,那就是用交易间隔的办法。2个订单间的交易时间大于1根K线的交易位移。感觉这个方法要简单些。 如果用1小时K线,我写的代码是TimeLocal()-Orderclosetime()>3600 但是有时候运行会有问题。 不知道什么原因。。。能指点下么? |
|
liu2730
2009.07.02 12:39
TimeLocal() 换成timecurrent()试试。 |
|
DxdCn
2009.07.02 12:58
datetime lasttime=NULL; ............ } |
|
azqyy
2009.07.03 05:49
TO LIU2730:换成Timecurrent() 也是会有问题。 很多应该出现的交易都没有出现。。。 TO DXDCN:这个想法很好。。。看来我确实还需要对所有函数再次理解下。我初学者,非常不好意思的再问下。 lasttime=Time[0]这句应该写在哪里?是否写在ORDERSENT后?是否代表这次交易结束后记录TIME[0]? |
|
DxdCn
2009.07.03 16:31
一般是这样顺序: (取决于你的交易策略) datetime lasttime=NULL; 平仓代码 跟踪止赢代码 开仓代码 ............ } |
|
y2k_connect
2009.07.05 05:47
使用静态变量解决问题。 static datetime old_Kline; init init() { old_Kline=Time[0]; return(0); } int start() { if (Time[0] != old_Kline) { ... ... old_Kline = Time[0]; } return(0); } |
|
cwl9999
2009.07.05 18:32
我也被这个问题困扰了很久,后来在论坛看到一个帖子受到启发。楼主的意思应该是一个BAR交易一次 可以这样 定义一个全局变量 int curbar=0 在主函数中 if (curbar<Bars) { curbar=Bars; } 这样就可以了,希望能解决你的困扰。 |
|
liu2730
2009.07.06 06:01
楼上的只能保证每个柱体开仓一次,问题是如果开仓不成功呢? 用历尽历史订单的办法是最严谨的办法。 |
|
azqyy
2009.07.06 16:16
多谢大家的指点!!给了我很多启发,目前问题已经解决。
|