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

 
Ozero:
我的意思是订单没有关闭 :( 对不起,如果我没有这样说,我还是个初学者。

它的效果相当好。

//+------------------------------------------------------------------+
//|                                                        Ozero.mq4 |
//|                                            Copyright 2014, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
// -------- переменные --- Н -----
extern double gLot=0.1;            // размер лота для покупки 
extern double gPoint=0.001;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
// -------- переменные --- К ----- 
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {

// Открытие позиции
   if(OrdersTotal()==0)
     {
      Print(" Открытие первой позиции ");
      double _Ask=MarketInfo("GBPUSD",MODE_ASK);
      int ticket=OrderSend("GBPUSD",OP_BUY,gLot,_Ask,15,0,0);
      if(ticket>0)
        {
         Print(" ОРДЕР ОТКРЫТ ",ticket);
        }
     }

   double _Bid=MarketInfo("GBPUSD",MODE_BID); //для цены
   for(int pos=OrdersTotal()-1;pos>=0;pos--)
     {
      if(OrderSelect(pos,SELECT_BY_POS))
        {
         if(OrderOpenPrice()+gPoint<_Bid)
           {
            OrderClose(OrderTicket(),OrderLots(),_Bid,15);
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
附加的文件:
ozero.mq4  2 kb
 
Vinin:

它的效果相当好。

你好,维宁。

分析了你的代码。很好地解决了我的问题。但是,我的代码仍然对你有用吗?还是说 "运行良好 "指的是你的程序版本?

对我来说,理解MQL语言很重要。


关于你的版本的问题。你为什么不在程序开始时声明_Bid和_Ask变量?在mql4中是否允许这样做?


奥泽罗。

 
Vinin:

它的效果相当好。

太棒了!你的方案有效。但为什么我的不像那样工作呢?
[删除]  
Ozero:
太棒了!你的程序是有效的。但为什么我的不像那样工作呢?

第一部分与这里相比是什么?

           if (AktualBid>=AktualAsk+0.010 && PozOtk1==false)

如果你按照建议纠正了代码以获得第二个值。

                   AktualAsk=MarketInfo( "GBPUSD",MODE_ASK);

那么你就没有为第一个。

      AktualBid=NormalizeDouble(Bid,Digits); //для цены

而维宁 把它修好了。

   double _Bid=MarketInfo("GBPUSD",MODE_BID); //для цены

这可能就是所有的奇妙之处。但我不确定,自己去查吧。

[Deleted]  
你好,请帮助我理解这个指标,我想知道哪个公式用于计算 "公式0 "以及 "公式1 "的值。
附加的文件:
 
zigga85:
你好,请帮助我理解这个指标,我想知道哪个公式用于计算 "公式0 "的值,以及 "公式1 "的值。
(高+低+收)/3和(高+低+2*收)/4
[删除]  
Vinin:

它的效果相当好。

尊敬的Vinin!!!! 主持人

我早就想感谢你的真诚答复。他们中的一个人在很久以前帮助我向真正的交易过渡。你给我建议了正确的订单关闭算法,而不是我自己写的那个。我仍然使用你的。

这个主题中的建议非常好,很有帮助。

再次,非常感谢您!

 
Vinin:

它的效果相当好。

晚上好。


0个错误,1个警告:应检查'OrderClose'的返回值46 13是OrderClose(OrderTicket(),OrderLots(),_Bid,15)行。


奥泽罗。

 
Ozero:

晚上好。


0个错误,1个警告:应检查'OrderClose'的返回值46 13是OrderClose(OrderTicket(),OrderLots(),_Bid,15)行。


奥泽罗。


ResetLastError();
if(!OrderClose(OrderTicket(),OrderLots(),_Bid,15);) Print("Чё-та не закрылася позиция. Фигня вот такая происходит: "+GetLastError());
 
artmedia70:

在括号后面放一个";"。

该程序可以工作,但偶尔会出现4108错误。


奥泽罗。