智能交易网,程序化交易,自动交易,量化交易

 找回密码
 注册

QQ登录

只需一步,快速开始

手机短信登录

参加MT4智能交易编程培训,7课免费在线试听MT4指标,EA代写,或EA指标加密账户远程验证服务 最完善商业MT4跟单系统(0.1秒极速响应不漏单)
为论坛做贡献有奖学金,奖学金可直接换真钱 扫本站微信公 众号部分视频课程指标EA免费得智能交易网MT4操盘神器,扫公众号免费得
查看: 4827|回复: 7

请教关于OrderSend的一些疑问

[复制链接]
发表于 2013-11-8 16:58:26 | 显示全部楼层 |阅读模式
int OrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, void comment, void magic, void expiration, void arrow_color)

示例中
ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green);

我有一些不明白之处,我知道price就是交易时的购买价格,
在第2项参数cmd为OP_BUY(买仓),而第4项参数price为Ask(最新卖价格)
我听说,如果开仓是多单,那么就是ASK价,空单则是BID价,例子也是如此,但是我不知道为什么是这样,为何买多要用卖价,买空要用买价呢?

我在实际编写的时候在没有弄清这一点的情况下,就无法继续编写下去
举个例子,我的交易平台里,现货黄金里面
1.在大多数情况下的点差为0.5美元,即在卖价为1300美元/盎司的时候,买价为1300.5美元/盎司,
2.因为点差是浮动点差,点差会在0.5美元到5美元之间浮动,即买价在卖价为1300美元/盎司的时候最高可达1305美元/盎司,
3.我的K线图表都是以卖价为参考的,所以在交易策略上都是以卖价为参考
4.我在使用MarketInfo ()得到我平台的MODE_SPREAD,即点差,在点差为0.5美元的时候返回的值是500

那么问题来了,
1.我在使用OrderSend的时候,第2项参数购买方式cmd为OP_BUYLIMIT,即买挂单交易,那么在第4项参数price里我希望以卖价1300美元/盎司的时候,且点差在小于等于2美元的情况下交易,即买价为1300.5美元/盎司或者因为点差的原因最大不超过1302美元/盎司的时候交易,在这里我该如何设置参数price呢?是直接设为1300美元/盎司吗?

2.我在使用OrderSend的时候,第2项参数购买方式cmd为OP_SELLLIMIT,即卖挂单交易,那么在第4项参数price里我希望以卖价1300美元/盎司的时候,且点差在小于等于2美元的情况下交易,即买价为1300.5美元/盎司或者因为点差的原因最大不超过1302美元/盎司的时候交易,在这里我该如何设置参数price呢?是设为卖价1300美元/盎司呢?还是按要求那么设为Bid,那么就会因为点差的原因设在1300之上了,可能是1300.5美元/盎司甚至1305美元/盎司了

3.在示例中第5项参数设置最大允许滑点数slippage里面,例子设为"3",这个"3"是指3个Point吗?而在点差为0.5美元的时候用MarketInfo(Symbol(), MODE_SPREAD))返回的值"500"也是500个Point吗?

就是以上3个问题,谢谢
回复

使用道具 举报

发表于 2013-11-10 17:24:12 | 显示全部楼层
你好,我来回答你的问题,仅供参考。我不能按你提出的问题回答,因为基本概念你还不清楚,所以,无法按你的问题回答,但我相信,你的问题也就解决了。
ask,是客户的买价,交易商卖价;bid,是客户的卖价,是交易商的买价。网上总是说到买价与卖价,但不指出买主与卖主,这不是糊涂话吗?但人们总是说这样的糊涂话。
点差,是成交价与市场价的差值,例如,市价为1300美元/盎司,点差为50(对2位小数而言),则客户买多,则ask=1300.5美元/盎司,若买空,bid=1299.5美元/盎司。
滑点,是实际成交价与ask或bid的差,若买多,会比指定的成交价高,若买空,会比成交价低,这是因为,市价随时在变化,当然,ask或bid也会变。
你挂单,指定交易价就是ask或bid。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-13 23:29:16 | 显示全部楼层
谢谢回答,感觉有点迷糊了.
我试者简化一下问题吧,以现货黄金为例,我的平台打开K线图后,显示的市场价格和我的卖价是一致的,而买价则比卖价要高0.5美元,也就是点差为0.5美元,那么,如果我要在市场价(K线图上的价格)1300美元/盎司的时候作多,那么我进入市场的价格买单则为1300.5美元/盎司,那么如果价格在1300美元/盎司以上,我要挂一张市场价在(K线图上的价格)1300美元/盎司的时候买单,我应该如何选择以下?
1.OrderSend(Symbol(),OP_BUYLIMIT,1,1300)
2.OrderSend(Symbol(),OP_BUYLIMIT,1,1300.5)
(以上为问题一,即点差固定在0.5美元的时候)

问题二
我要挂一张市场价在(K线图上的价格)1300美元/盎司的时候买单,点差不高于2美元,即我的买入价不能高于1302美元/盎司,我该怎么做?

问题三
我听说挂单基本不用考虑划点,这个问题先放着
回复 支持 反对

使用道具 举报

发表于 2013-11-14 20:50:22 | 显示全部楼层
redstone 发表于 2013-11-13 23:29
谢谢回答,感觉有点迷糊了.
我试者简化一下问题吧,以现货黄金为例,我的平台打开K线图后,显示的市场价格和我 ...

挂单和及时成交不同,挂单需在“停止水平”之外指定你的交易价。“停止水平”是在现价之上及现价之下某一幅度的一个区域,例如,“停止水平”(MODE_STOPLEVEL)为200点,现价为1308美元/盎司,则你指定的交易价必须大于1310美元/盎司或小于1306美元/盎司,则可以这样挂单:
OrderSend(Symbol(),OP_BUYLIMIT,1,1305.5,10,1302.5,1315.5)
参数分别为:货币对、限价BUY挂单,1手,交易价,滑点10,止损300点、止盈价1000点。
或:OrderSend(Symbol(),OP_BUYSTOP,1,1310.5,10,1307.5,1320.5)
若及时交易做多,则:OrderSend(Symbol(),OP_BUY,1,1308.00,10,1305.00,1318.00)

回复 支持 反对

使用道具 举报

发表于 2015-5-25 22:29:14 | 显示全部楼层
学习了,
谢谢分享
回复 支持 反对

使用道具 举报

发表于 2015-11-19 18:42:04 | 显示全部楼层
几位解释的很清楚,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|sitemap|智能交易网,程序化交易,自动交易,量化交易 ( 苏ICP备08108698号,苏州智德金网络科技股份有限公司版权所有 )

GMT+8, 2019-10-15 05:55 , Processed in 0.036443 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表