如果(buy>0) { 警报("BuyStop订单已被设置",buy)。 } int sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//打开卖单。 如果(卖出>0) { 警报("SellStop order set",sell)。 } 如果(DayOfWeek()==5 && Hour()==22) //在服务器时间周五23:00删除挂单和开单 { 如果(OrderSelect(sell,SELECT_BY_TICKET)==true) { OrderClose(sell,OrderLots(),Bid,3,Green);//(Ticket,lot,Close price,slipage in pips,close箭头在图表上的颜色){ Close market order to sell。 OrderDelete(sell);//关闭卖出限制。 } 如果(OrderSelect(buy,SELECT_BY_TICKET)==true) { OrderClose(buy,OrderLots(),Ask,3,Red);//(Ticket, lot, close price, slippage in points, color of the close arrow on the chart)/close market order to buy. OrderDelete(buy);//关闭买入限制。 return(0); } } }
如果((hi-low)<=max_koridor_v_punktah)
{
int buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//打开购买订单。
如果(buy>0)
{
警报("BuyStop订单已被设置",buy)。
}
int sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//打开卖单。
如果(卖出>0)
{
警报("SellStop order set",sell)。
}
如果(DayOfWeek()==5 && Hour()==22) //在服务器时间周五23:00删除挂单和开单
{
如果(OrderSelect(sell,SELECT_BY_TICKET)==true)
{
OrderClose(sell,OrderLots(),Bid,3,Green);//(Ticket,lot,Close price,slipage in pips,close箭头在图表上的颜色){ Close market order to sell。
OrderDelete(sell);//关闭卖出限制。
}
如果(OrderSelect(buy,SELECT_BY_TICKET)==true)
{
OrderClose(buy,OrderLots(),Ask,3,Red);//(Ticket, lot, close price, slippage in points, color of the close arrow on the chart)/close market order to buy.
OrderDelete(buy);//关闭买入限制。
return(0);
}
}
}
谁能告诉我为什么它不关闭订单,不删除限制?
以买入价关闭买单,以卖出价卖出。
以买入价关闭买单,以卖出价卖出。
init函数中的简单条件 金属、库存和原材料不计入。
谢谢。你能告诉我最简单的方法吗?需要了解这个货币对上是否有敞口头寸。是否有卖单,是否有买单。这意味着,我们需要得到
0 - 如果没有未结订单
1-我有卖单,但没有买单。
2-有买单但没有卖单
3-有两个...
https://docs.mql4.com/ru/series
如果(DayOfWeek()==1,2.....)&& Hour()==1,2....)
{
double hi=iHigh(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//定义 high
double low=iLow(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//定义low。
/////////////////////////////////////////////////////////////////////////////////////////////////
double op=iOpen(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//定义打开。
谢谢你!
谢谢。你能告诉我最简单的方法吗?需要了解这个货币对上是否有敞口头寸。是否有卖单,是否有买单。这意味着,我们需要得到
0 - 如果没有未结订单
1-我有卖单,但没有买单。
2-有买单但没有卖单
3-两者都有。
比如说像这样。
int i_buy=0;
int i_sell=0;
//--- получим количество открытых и отложенных ордеров
int total=OrdersTotal();
for(int i=0;i<total;i++)
{
//--- выберем i-й ордер из списка торговли
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
//--- если ордер открыт по текущему финансовому инструменту
if(OrderSymbol()==Symbol())
{
switch(OrderType())
{
//--- Бай ордер
case OP_BUY:
i_buy++;
break;
//--- Селл ордер
case OP_SELL:
i_sell++;
break;
case OP_BUYSTOP:
case OP_BUYLIMIT:
case OP_SELLSTOP:
case OP_SELLLIMIT:
//--- пробойники, лимитники
break;
}
}
}
}
if(i_buy==0 && i_sell==0)
{
//--- нет открытых ордеров
}
if(i_buy>0 && i_sell==0)
{
//--- открыты баи
}
if(i_buy==0 && i_sell>0)
{
//--- открыты селы
}
if(i_buy>0 && i_sell>0)
{
//--- открыты и баи и селы
}
例如,像这样。
非常感谢你。我的理解是,asc是目前的价格。我在没有未结订单的情况下开了一个订单。循环从第一个开单到最后一个开单?我怎样才能将最后一个未平仓订单的手数和价格传送到一个变量中?
非常感谢你。我的理解是,asc是目前的价格。 我在没有未结订单的情况下开了一个订单。循环从第一个开单到最后一个开单?我怎样才能把最后一笔订单的手数和价格设置成一个变量?
https://docs.mql4.com/ru/trading/orderselecthttps://docs.mql4.com/ru/trading/orderopenprice https://docs.mql4.com/ru/trading/orderlots
double z; //声明一个变量 "z"。
double y; //declare "y" variable.
如果(OrderSelect(10,SELECT_BY_POS)==true) //如果订单(按票)已经被选中
{
OrderLots()=z //将此订单的手数分配给 "z "变量。
OrderOpenPrice()=y //将开盘价分配给 "y "变量。
}
试试这个
https://docs.mql4.com/ru/trading/orderselecthttps://docs.mql4.com/ru/trading/orderopenprice https://docs.mql4.com/ru/trading/orderlots
double z; //declare "z" variable.
double y; //declare "y" variable.
如果(OrderSelect(10,SELECT_BY_POS)==true) //如果订单(按票)已经被选中
{
OrderLots()=z //将此订单的手数分配给 "z "变量。
OrderOpenPrice()=y //将开盘价分配给 "y "变量。
}
试试这个
y = OrderOpenPrice()。
Oops, got it, just don't understand. if((i_buy==0 && i_sell==0) || y > Step).如果与上一个开仓订单的距离超过5个点,应该再开一个订单。但这并不奏效,问题。
for(int i=0;i<total;i++) 它从第一个打开的订单到最后一个?也就是说,我最终应该得到最后开出的订单的价格。
y = OrderOpenPrice()。
我不明白如果((i_buy==0 && i_sell==0) || y > Step)。如果与上一个开仓订单的距离超过5个点,应该再开一个订单。但这并不奏效,问题。
for(int i=0;i<total;i++) 它从第一个打开的订单到最后一个?换句话说,我应该得到最后一笔订单的价格。
我不知道,我没有遇到过。
你好。我在https://forum.mql4.com/ru/51490/page2 上看到一个帖子,其中有一个脚本可以打开EA设置窗口。
这个可以打开EA设置窗口。
是否可以让脚本以1秒的间隔打开EA设置窗口,并立即确认(按OK键) ,如此反复?