这有什么不对吗? - 页 4

 
sss2019:
还会是什么呢?

而这一点你要自己检查,你就会知道。
 
sergeev:

而这一点你要自己检查,你就会知道。
你为什么就这样把他交出去,你甚至没有问他的姓氏。这是个小丑,你甚至不需要打开手令,只需在口袋里默默地啄一下。
 
不过,是一块肉饼!就是这样,对,对。
 

为什么这个订单打不开,错误在哪里?

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int MaFastPeriod = 30;
extern int MaSlowPeriod = 90;
extern int StopLoss = 25;
extern int TakeProfit = 50;

int init()
  {

  }



int deinit()
  {

  }



int start()
  {
double MaFast = iMA(Symbol(),0,MaFastPeriod,0,MODE_EMA,PRICE_CLOSE,0);
double MaSlow = iMA(Symbol(),0,MaSlowPeriod,0,MODE_EMA,PRICE_CLOSE,0);
   
   if(OrdersTotal() == 0 && MaFast > MaSlow)
   {
   OrderSend(Symbol(),0,0.1,Ask,3,Ask+TakeProfit*Point,Ask-StopLoss*Point,"CommentA",0,0,Green);
   }else
   {
      if(GetLastError() != 0)
         {
         Alert("Ошибка", GetLastError());
         }
   }
   
   return(0);
  }
 
我怎样才能实现只在信号栏上打开交易?

例如,一条移动平均线 与另一条移动平均线 相交,有一笔交易开启,但如果你关闭这笔交易,另一笔交易就会开启,甚至在距离信号条数条之后。
 
sss2019:
如何只在信号栏上打开一个交易?

例如,一条移动平均线与另一条移动平均线相交,有一笔交易开启,但如果你关闭这笔交易,另一笔交易就会开启,甚至在距离信号条数条之后。
你肯定被禁止进入谷歌,也被禁止进入我们的FAQ。
首先,你是如何得到两个MAs的交叉信号的?

然后用谷歌搜索,比如只开一个订单 site:mql4.com
 

是的,我知道如何打开一个订单,但问题是,如果你打开一个订单,它在几个小时后关闭,并且所有打开的条件仍然完好,那么另一个订单被打开,即使你已经远离了信号栏。

我会看一下你的链接,谢谢。

 
sss2019:

是的,我知道如何打开一个订单,但问题是,如果你打开一个订单,它在几个小时后关闭,并且所有打开的条件仍然是完整的,另一个订单被打开,即使你已经远离了信号栏。

我会看一下你的链接,谢谢你。


我们设置了一个标志,允许订单被打开。一个信号传来,旗帜允许。我们开仓,并立即移除旗子。一段时间后,这个姿势被关闭。专家顾问看到有一个信号,但标志被移除(它被禁止下订单)--结果,订单没有被设置。

下一步。如果没有信号,我们设置一个标志(允许开仓)。或者,一旦有新的信号,我们就设置一个标志。但在第二种情况下,专家顾问应该能够将新信号与旧信号区分开来。

 

醉翁之意不在酒



设置一个标志,允许打开订单。一个信号传来,旗帜允许。我们开仓,并立即移除旗子。一段时间后,这个姿势被关闭。专家顾问看到有一个信号,但标志已被删除(它被禁止设置订单),因此,没有订单被设置。

下一步。如果没有信号,我们就设置标志(允许开仓)。或者,一旦有新的信号,我们就会设置旗帜。但在第二种情况下,专家顾问应该能够将新信号与旧信号区分开来。


非常感谢,我认为这种方式更加普遍。

顺便问一下,我们怎样才能在我们的EA中宣布订单已被打开?也许这可以通过使用OrderSelect来实现?

 

好吧,请看一下我在那里搞砸的东西,现在订单打不开了。

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int MaFastPeriod = 30;
extern int MaSlowPeriod = 90;
extern int StopLoss = 25;
extern int TakeProfit = 50;

int init()
  {

  }



int deinit()
  {

  }



int start()
  {
  double MyPoint = Point;
   if(Digits == 3 || Digits == 5)
      {
      MyPoint = Point * 10;
      }
      
double MaFast = iMA(Symbol(),0,MaFastPeriod,0,MODE_EMA,PRICE_CLOSE,0);
double MaSlow = iMA(Symbol(),0,MaSlowPeriod,0,MODE_EMA,PRICE_CLOSE,0);

   for(int SelectedOrder = 0; SelectedOrder < OrdersTotal(); SelectedOrder++)
      {
         bool Flag = false;
         if(OrderSelect(SelectedOrder,SELECT_BY_POS,MODE_TRADES)==True)
            {
            Flag = false;
            }
      }
   return(Flag);
   
   if(OrdersTotal() == 0 && MaFast > MaSlow && Flag == false)
      {
      OrderSend(Symbol(),0,0.1,Ask,30,Ask-StopLoss*MyPoint,Ask+TakeProfit*MyPoint,"CommentA",0,0,Green);
      }
   
   return(0);
  }