FORTS SL和TP - 页 6 1234567 新评论 Dmitry Fedoseev 2017.03.06 07:34 #51 ottenand: 所以你想让杯中的卖出限价单站在买入限价单中? 不,他想再次证明,他是这里唯一的达达尼昂。 Yury Kulikov 2017.03.06 07:41 #52 prostotrader: 不,为了在市场上下单(而且会在那里),你应该使用request.type_filling=ORDER_FILLING_RETURN。添加将ORDER_FILLING_IOC改为ORDER_FILLING_RETURN(在我的例子中)。和价格为SYMBOL_SESSION_PRICE_LIMIT_MAX你会看到市场上的订单:)那么应该使用什么订单类型? prostotrader 2017.03.06 07:46 #53 Yury Kulikov::)我应该使用什么类型的订单?void SetSyncOrder(const bool deffered) { MqlTradeRequest request={0}; MqlTradeResult result={0}; order_ticket=0; request.magic=Magic; request.symbol=Symbol(); request.volume=1; if(deffered) { request.type_filling=ORDER_FILLING_RETURN; //Отложенный ордер } else { request.type_filling=ORDER_FILLING_IOC; //Рыночный ордер } request.type_time=ORDER_TIME_DAY; request.action=TRADE_ACTION_PENDING; request.type=ORDER_TYPE_SELL_LIMIT; request.comment=""; if(deffered) { request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MAX); } else { request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MIN); } if(OrderSend(request,result)) { if(result.retcode==TRADE_RETCODE_DONE) { order_ticket=result.order; if(OrderSelect(order_ticket)) { ENUM_ORDER_STATE order_state=ENUM_ORDER_STATE(OrderGetInteger(ORDER_STATE)); switch(order_state) { case ORDER_STATE_STARTED: case ORDER_STATE_REQUEST_ADD: case ORDER_STATE_REQUEST_MODIFY: case ORDER_STATE_REQUEST_CANCEL: Print(__FUNCTION__,": Order is busy! State: ",EnumToString(order_state)); break; case ORDER_STATE_CANCELED: case ORDER_STATE_PARTIAL: case ORDER_STATE_FILLED: case ORDER_STATE_REJECTED: case ORDER_STATE_EXPIRED: Print(__FUNCTION__,": Order not found."); break; case ORDER_STATE_PLACED: Print(__FUNCTION__,": Sync Order place done and found in terminal."); break; } } } } else {Print("Order not sent.");} } 价格是作为一个例子给出的 附加的文件: Test_sync_order.mq5 12 kb FORTS SL and TP 堡垒。执法问题 我如何正确地开立市场订单? ottenand 2017.03.06 07:47 #54 prostotrader: 我什么都不想要。仔细阅读整个主题。 不要解释,他们是想帮助你,试着吸收和理解。只有买入限价可以低于交易所的当前价格。其他低于该价格的东西都可能是经纪人服务器上的止损单。该卖出限价单在下一个收盘价被执行,也就是市场价格,因为你不能放你不能放的东西,也就是说,你把你的卖出限价单放在堆栈的价格以下的买入线里。如果你想在价格以下有条件地卖出,在经纪人的服务器上设置卖出止损。 prostotrader 2017.03.06 07:50 #55 ottenand: 不要解释,他们是想帮助你,试着进入它,弄清楚它。只有买入限价可以低于交易所的当前价格。其他低于该价格的东西都可以在经纪人的服务器上以止损单的形式出现。该卖出限价单在下一个收盘价被执行,也就是市场价格,因为你不能放你不能放的东西,也就是说,你把你的卖出限价单放在堆栈的价格以下的买入线里。如果你想在低于价格的情况下卖出,有一个条件 - 在服务器上放一个卖出止损点给经纪人。 那么你也不必解释...... Yury Kulikov 2017.03.06 07:51 #56 prostotrader: request.type=ORDER_TYPE_SELL_LIMIT;为什么对一个简单的问题引用这么长的文字,即你的答案:卖出限价 订单类型。 prostotrader 2017.03.06 07:51 #57 Yury Kulikov:为什么对一个简单的问题引用这么长的文字,即你的答案:卖出限价 订单类型。:) ottenand 2017.03.06 07:52 #58 呵,好吧,这取决于你 =) ottenand 2017.03.06 08:02 #59 如果我有什么地方说错了,请纠正我 =) prostotrader 2017.03.06 11:37 #60 Yury Kulikov:为什么对一个简单的问题引用这么长的文字,即你的答案:卖出限价 订单类型。 Yuriy!我给出了文件(Plaza II规格)。规范中没有半点关于限价、市场或挂单的内容。交易所的订单是根据4个主要参数来接受的1.价格2.订单方向(买/卖)。3.体积 .类型(在MQL中)。这就是开发者所称的限价单、市场单或挂单。为了正确下单,我们需要了解这些订单将被交易所如何看待根据规范。添加例如,为了使订单保持在堆栈中在卖出区只需从卖出区设置一个价格即可和request.type_filling=ORDER_FILLING_RETURN。但如果你从买入区设置一个价格,你的订单将立即被执行。这就是为什么我把订单命名为 "待定",以便或多或少与市场规范保持一致。待定 - 在市场上 "待定 "的订单。市场 - 该订单可以在任何价格执行。限价订单 - 该订单将以订单中指定的价格执行。 轻松快捷开发 MetaTrader 程序的函数库 (第 以莫斯科交易所衍生产品市场为例的交易定价原则 轻松快捷开发 MetaTrader 程序的函数库(第 二十一部分):交易类 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
所以你想让杯中的卖出限价单站在买入限价单中?
不,他想再次证明,他是这里唯一的达达尼昂。
不,为了在市场上下单(而且会在那里),你应该使用
request.type_filling=ORDER_FILLING_RETURN。
添加
将ORDER_FILLING_IOC改为ORDER_FILLING_RETURN(在我的例子中)。
和价格为SYMBOL_SESSION_PRICE_LIMIT_MAX
你会看到市场上的订单
:)我应该使用什么类型的订单?
{
MqlTradeRequest request={0};
MqlTradeResult result={0};
order_ticket=0;
request.magic=Magic;
request.symbol=Symbol();
request.volume=1;
if(deffered)
{
request.type_filling=ORDER_FILLING_RETURN; //Отложенный ордер
}
else
{
request.type_filling=ORDER_FILLING_IOC; //Рыночный ордер
}
request.type_time=ORDER_TIME_DAY;
request.action=TRADE_ACTION_PENDING;
request.type=ORDER_TYPE_SELL_LIMIT;
request.comment="";
if(deffered)
{
request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MAX);
}
else
{
request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MIN);
}
if(OrderSend(request,result))
{
if(result.retcode==TRADE_RETCODE_DONE)
{
order_ticket=result.order;
if(OrderSelect(order_ticket))
{
ENUM_ORDER_STATE order_state=ENUM_ORDER_STATE(OrderGetInteger(ORDER_STATE));
switch(order_state)
{
case ORDER_STATE_STARTED:
case ORDER_STATE_REQUEST_ADD:
case ORDER_STATE_REQUEST_MODIFY:
case ORDER_STATE_REQUEST_CANCEL:
Print(__FUNCTION__,": Order is busy! State: ",EnumToString(order_state));
break;
case ORDER_STATE_CANCELED:
case ORDER_STATE_PARTIAL:
case ORDER_STATE_FILLED:
case ORDER_STATE_REJECTED:
case ORDER_STATE_EXPIRED:
Print(__FUNCTION__,": Order not found.");
break;
case ORDER_STATE_PLACED:
Print(__FUNCTION__,": Sync Order place done and found in terminal.");
break;
}
}
}
}
else {Print("Order not sent.");}
}
我什么都不想要。
仔细阅读整个主题。
不要解释,他们是想帮助你,试着进入它,弄清楚它。只有买入限价可以低于交易所的当前价格。其他低于该价格的东西都可以在经纪人的服务器上以止损单的形式出现。该卖出限价单在下一个收盘价被执行,也就是市场价格,因为你不能放你不能放的东西,也就是说,你把你的卖出限价单放在堆栈的价格以下的买入线里。如果你想在低于价格的情况下卖出,有一个条件 - 在服务器上放一个卖出止损点给经纪人。
那么你也不必解释......
为什么对一个简单的问题引用这么长的文字,即你的答案:卖出限价 订单类型。
为什么对一个简单的问题引用这么长的文字,即你的答案:卖出限价 订单类型。
:)
如果我有什么地方说错了,请纠正我 =)
为什么对一个简单的问题引用这么长的文字,即你的答案:卖出限价 订单类型。
Yuriy!
我给出了文件(Plaza II规格)。
规范中没有半点关于限价、市场或挂单的内容。
交易所的订单是根据4个主要参数来接受的
1.价格
2.订单方向(买/卖)。
3.体积 .
类型(在MQL中)。
这就是开发者所称的限价单、市场单或挂单。
为了正确下单,我们需要了解这些订单将被交易所如何看待
根据规范。
添加
例如,为了使订单保持在堆栈中
在卖出区
只需从卖出区设置一个价格即可
和request.type_filling=ORDER_FILLING_RETURN。
但如果你从买入区设置一个价格,你的订单将立即被执行。
这就是为什么我把订单命名为 "待定",以便或多或少与市场规范保持一致。
待定 - 在市场上 "待定 "的订单。
市场 - 该订单可以在任何价格执行。
限价订单 - 该订单将以订单中指定的价格执行。