任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 366

 
vadynik:
我想在价格的某一个点上关闭我的订单,我想做一个虚拟的停止...


因为在代码中,你没有要求市场报价,你只是在计算,所以这一行。

((normalizeDouble(priceopen,Digits)>=(normalizeDouble(priceopen,Digits)-30*Point))|(normalizeDouble(price open,Digits)<=(normalizeDouble(priceopen,Digits) + 25*Point)))

始终为真,运算符的主体将被执行。

 
vadynik:
为什么一个订单在下一个跳动点立即关闭,我的头已经沸腾了,我想让一个订单在距离价格一定数量的点关闭,就像一个虚拟的停止...

打印出该值

priceopen

...

 
vadynik:
为什么订单会在下一个点位立即关闭,我的头已经沸腾了,因为我想在价格的一定数量内关闭它,有点像一个虚拟的停止......


这与你在这一行做以下计算是一样的。

如果 ((100 >=100-30)|(100 <=100 + 25))

{

打印(100)

OrderClose(OrderTicket(),OrderLots(),Bid,50,Blue)

}

你明白我的意思吗?)

 
Ekburg:


就像你在这一行做了以下计算。

如果 ((100 >=100-30)|(100 <=100 + 25))

{

打印(100)

OrderClose(OrderTicket(),OrderLots(),Bid,50,Blue)

}

明白我的意思了吗?)


是的,逻辑是浮动的))。
 
vadynik:

是的,逻辑游动)))。

会的......))起初,我想每个人都是这样的......))。
 
Ekburg:

它将......)))),一开始,我想每个人都有这个))))。


是的,很难启动)谢谢你的帮助

NormalizeDouble(priceopen-30*Point,Digits)>=Bid

这就是它的作用。

 
你能告诉我如何在MLQ4上写 "一些条件,然后要求人工确认 "吗?
 
Trader7777:
你能告诉我如何在MLQ4上写 "一些条件,然后要求人工确认 "吗?


MessageBox函数创建和显示一个消息框并控制它。
 

谢谢你,我们会研究的......)
 
Trader7777:

谢谢你,我们会研究的...)

例子

//+------------------------------------------------------------------+
//|                                         проверка(MessageBox).mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern int     stoploss    = 0,        //уровень выставления SL, если 0, то SL не выставляется
               takeprofit  = 0,        //уровень выставления TP, если 0, то TP не выставляется
               Magic       = 0;        //уникальный номер ордера
extern double  Lot         = 0.01;      //объем ордера
extern int     slippage    = 0;        //Максимально допустимое отклонение цены для рыночных ордеров

double SL,TP;
#include <WinUser32.mqh>
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
    if (MessageBox (" открыть ордер BUY??? ","Скрипт интересуется:",1)==1)
        {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;     
      OPENORDER ("Buy");
        } 

//----
   return(0);
  }
//+------------------------------------------------------------------+
void OPENORDER(string ord)
{
   int error,err;
   while (true)
   {  error=true;
      if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"BUY",Magic,0,Blue);
      if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,"SELL",Magic,0,Red);
      if (error==-1) //неудачная покупка OK
      {  
         ShowERROR();
         err++;Sleep(2000);RefreshRates();
      }
      if (error || err >10) return;
   }
return;
}                  
//--------------------------------------------------------------------
void ShowERROR()
{
   int err=GetLastError();
   switch ( err )
   {                  
      case 1:   return;
      case 2:   Alert("Нет связи с торговым сервером ",Symbol());return;
      case 3:   Alert("Error неправильные параметры ",Symbol());return;
      case 130: Alert("Error близкие стопы   Ticket ",Symbol());return;
      case 134: Alert("Недостаточно денег   ",Symbol());return;
      case 146: Alert("Error Подсистема торговли занята ",Symbol());return;
      case 129: Alert("Error Неправильная цена ",Symbol());return;
      case 131: Alert("Error Неправильный объем ",Symbol());return;
      case 4200:Alert("Error Объект уже существует ",Symbol());return;
      default:  Alert("Error  " ,err," ",Symbol());return;
   }
}
//--------------------------------------------------------------------