[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 1012

 
boris.45:

谢谢你

因此,下载数据。按F2,选择一对,在M1上下载整个历史记录
 

你好!

请告知如何在EA中实现指标值与不同时间间隔的价格比较(timeframe???????)。我正在粘贴代码。搜索没有得到任何信息,就像我能读到的这个主题(有940个)。提前感谢!!。

//+------------------------------------------------------------------+
//|                                        expert SAR_1_5_15 min.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//---- input parameters
extern double    Lots=0.01;
extern int       StopLoss=300;
extern int       TakeProfit=150;
extern int       MagicNumber=123456;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
bool CheckOrders(int Type)
{
 bool Result=True;
 for(int i=0;i<OrdersTotal();i++)
  if(OrderSelect(i,SELECT_BY_POS))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol())
      if(OrderType()==Type)
        {
         if(Type==OP_BUY)
           if(!OrderClose(OrderTicket(),OrderLots(),Bid,0))
             Result=False;
         if(Type==OP_SELL)
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,0))
             Result=False;
         } 
        else Result=False;
 return(Result); 
}

// Проверяем наличие закрытой на текущей свече позиции типа Type. Если есть, то возвращает False  
bool CheckExists(int Type)  
{
 bool Result=True;
 for(int i=OrdersHistoryTotal()-1; i>=0;i--)
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
   if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderCloseTime()>=Time[0]&&OrderType()==Type)
    {
     Result=False;
     break;
     }
 return(Result); 
 }
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения Parabolic,на 0-ом, 1-ом и 2-м барах для 1,5-ти,15-ти минутн. графиков
    double sar10 = iSAR(NULL,1,0.02,0.2,0);
    double sar11 = iSAR(NULL,1,0.02,0.2,1);
    double sar50 = iSAR(NULL,5,0.02,0.2,0);
    double sar51 = iSAR(NULL,5,0.02,0.2,1);
    double sar150 = iSAR(NULL,15,0.02,0.2,0);
    double sar151 = iSAR(NULL,15,0.02,0.2,1);
    double sar152 = iSAR(NULL,15,0.02,0.2,2);
        
   //-------------открытие позиции Buy покупка----------------- 
    if(
    (sar10>Open[0])&&    //  SAR 1 // сравниваем с ценой открытия
    (sar11>Close[0+1])&&    // минута и сравниваем с ценой закрытия
    (sar50>Open[0])&&         //  SAR 5
    (sar51>Close[0+1])&&      // минут
    (sar150>Open[0])&&        //  SAR 15
    (sar151>Close[0+1])&&    // минут
    (sar152<Close[0+2])      // начало тренда
    )
     if(CheckOrders(OP_SELL) && CheckExists(OP_BUY))
      {
       if(StopLoss <= StopLevel+Spread)
         double SL = 0;
        else
         SL = Ask - StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         double TP = 0;
        else
         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    //-------------------Конец блока покупки -------------------
    
    //-------------Открытие позиции Sell продажа----------------  
    if(
    (sar10<Open[0])&&       //  SAR 1
    (sar11<Close[0+1])&&    // минут
    (sar50<Open[0])&&       //  SAR 5
    (sar51<Close[0+1])&&    // минут
    (sar150<Open[0])&&        //  SAR 15
    (sar151<Close[0+1])&&     // минут
    (sar153>Close[0+2])      // начало тренда
    )
     if(CheckOrders(OP_BUY) && CheckExists(OP_SELL))
      {
       if(StopLoss <= StopLevel+Spread)
         SL = 0;
        else
         SL = Bid + StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         TP = 0;
        else
         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//-----------------конец блока продажи ----------------------
   return(0);
  }
//+------------------------------------------------------------------+
 
尊敬的程序员们,你们好!
我有一个按马车交易的EA。问题是,它并不总是正确地开仓和平仓,我认为是因为滑移。请在EA中添加滑点参数。谢谢你
附加的文件:
 

大家好!

你能告诉我如何设置这个EA吗?https://www.mql5.com/ru/code/9434

我想让它在达到一定的负值或正值时打开对冲头寸或关闭头寸,并获得利润。

我不知道在哪里可以改变参数。

那里有参数: profitplus 1.0

利润减去-1.0

利润1.0

我不知道该在哪里改。

我不知道在哪里可以改变参数。

 

你能告诉我在哪里可以找到一个在每日蜡烛开盘时开仓 的EA吗?

cp.

 
glasha:
尊敬的程序员们,你们好!
我有一个专家顾问,按比例进行交易。问题是,它并不总是正确地开仓和平仓,我认为是因为滑移。请在EA中添加滑点参数。谢谢你
附加的文件:
 
igrok2008:

你好!

请告知如何在EA中实现指标值与不同时间间隔的价格比较(timeframe???????)。我正在粘贴代码。搜索没有得到任何信息,就像我能读到的这个主题(有940个)。提前感谢!

据我所知,这就是它的比较之处。如果我弄错了,让他们纠正我。

如果(
(sar10>Open[0])&&//SAR 1 //与开盘价比较
(sar11>Close[0+1])&&/与收盘价 比较
(sar50>Open[0])&&//SAR 5
(sar51>Close[0+1])&&//分钟
(sar150>Open[0])&&//SAR 15
(sar151>Close[0+1])&&//分钟
(sar152<Close[0+2])//趋势开始
)

 

1.在不同的时间范围内,如何在一个真实的或一个测试器上协调方案。

例如:在一小时内,我们观察并寻找一种趋势,在半小时内,在(.)下方进入/退出。

谢谢你。

 
大家下午好,请教我如何使这个EMA交叉信号指示器在每次交叉时不是发出一声提示音,而是发出我想发出的多声?
 
x8profit:
你好,伙计们,你们能告诉我如何使这个EMA交叉信号指示器在每次交叉时不是发出一声蜂鸣,而是发出我想发出的多声蜂鸣?

我没有看代码,但我想到的第一件事是:在代码中产生一声提示音的部分,做一个循环,并向外部输出其迭代的次数。信号将按照你在设置中设定的次数进行输出...

虽然...它将是指标工作的一个暂停,信号的持续时间*周期的迭代次数。

原因: