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

 

001号回答说。

据我所知,这就是进行比较的地方。如果我错了,让他们纠正我。

如果(
(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] )//趋势开始

)

但事实并非如此。为了说明问题,专家顾问附在15分钟图表上,SAR与15、5和1分钟时间间隔的价格进行比较....。Open[0] Close[0+2]Close[0+2] 是开盘和收盘价。我需要比较图表的底部,这是在较低的时间框架上附在专家顾问上的!

提前感谢...

 
boris.45:

你在市场观察窗口中有这一对吗?

当你收到 "没有符号的新数据 "信息时,试着重新计算所有的时间框架,因为它要求你这样做。我通常是这样做的:我打开数据加载窗口(F2),双击所需的符号,双击M1并加载数据,尽管它有所有的信息。我为每个TF做了这个工作--M1、M5、M15...。月...

通常情况下,它有助于...虽然我有时会被它迷惑......:)

 
igrok2008:

但事实并非如此。为了说明问题,专家顾问附在15分钟的图表上,SAR与15、5和1分钟的时间间隔的价格进行比较....。Open[0] Close[0+2]Close[0+2] 是开盘和收盘价。我需要比较图表的底部,这是在较低的时间框架上附在专家顾问上的!

提前感谢...

   iSAR(Symbol(),PERIOD_M1, step,maximum,1);  // Данные параболика для текущего символа с периода М1
   iSAR(Symbol(),PERIOD_M5, step,maximum,1);  // Данные параболика для текущего символа с периода M5
   iSAR(Symbol(),PERIOD_M15,step,maximum,1);  // Данные параболика для текущего символа с периода М15
   iSAR(Symbol(),PERIOD_M30,step,maximum,1);  // Данные параболика для текущего символа с периода М30

   iOpen (Symbol(),PERIOD_M1,0);     // цена открытия минутной свечи текущего (нулевого) бара
   iClose(Symbol(),PERIOD_M1,0);     // цена закрытия минутной свечи текущего (нулевого) бара
   iOpen (Symbol(),PERIOD_M1,1);     // цена открытия минутной свечи предыдущего (первого) бара
   iClose(Symbol(),PERIOD_M1,1);     // цена закрытия минутной свечи предыдущего (первого) бара
   iOpen (Symbol(),PERIOD_M5,0);     // цена открытия пятиминутной свечи текущего бара
   iClose(Symbol(),PERIOD_M5,0);     // цена закрытия пятиминутной свечи текущего бара

以此类推,自己去做吧......

 
artmedia70:

你在市场观察窗口中有这一对吗?

当你收到 "没有符号的新数据 "的信息时,试着重新计算所有的时间框架,因为它要求你这样做。我通常是这样做的:我打开数据加载窗口(F2),双击所需的符号,双击M1并加载数据,尽管它有所有的信息。我为每个TF做了这个工作--M1、M5、M15...。月...

通常情况下,它有助于...虽然我有时会被它迷惑......:)

 
当EA没有关闭订单时(即使在其代码中规定了),测试人员给出了这些错误,这可能是什么原因?
 
ViktorF:
什么原因,当EA没有关闭订单时(即使在其代码中指定),测试人员给出了这样的错误:
这在代码中是不正确的,这就是为什么EA没有关闭。而这些都是无害的错误,最好是更新引号
 
artmedia70:

以此类推,自己去做吧......

请查看!!!!!

//+------------------------------------------------------------------+
//|                                 expert SAR_1_5_15 min primer.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);
    // Определяем цену открытия и закрытия для 15,5 и 1 мин. графиков
   double Open10 = iOpen (Symbol(),PERIOD_M1,0); // цена открытия 1 мин. свечи нулевого бара
   double Close10= iClose(Symbol(),PERIOD_M1,0); // цена закрытия 1 мин. свечи нулевого бара
   double Open50 = iOpen (Symbol(),PERIOD_M5,0); // цена открытия 5 мин. свечи нулевого бара
   double Close51= iClose(Symbol(),PERIOD_M5,1); // цена закрытия 5 мин. свечи первого бара    
   //-------------открытие позиции Buy покупка----------------- 
    if(
    (sar10>Open10)&&     //  SAR 1 // сравниваем с ценой открытия
    (sar11>Close10)&&    // минута и сравниваем с ценой закрытия
    (sar50>Open50)&&         //  SAR 5
    (sar51>Close51)&&        // минут
    (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<Open10)&&       //  SAR 1// сравниваем с ценой открытия
    (sar11<Close10)&&      // минута и сравниваем с ценой закрытия
    (sar50<Open50)&&       //  SAR 5
    (sar51<Close51)&&      // минут
    (sar150<Open[0])&&        //  SAR 15
    (sar151<Close[0+1])&&     // минут
    (sar152>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);
  }
//+------------------------------------------------------------------+

编译时没有发现错误!!!!!

提前感谢!

 
artmedia70:
artemida70,在市场观察窗口中有一个货币对。我试过你的加载方法,但没有用。在加载数据时,绿条没有到达终点,加载停止。重新加载时,"没有新的符号数据...... "的表格不再出现。顺便说一下,所有的时间框架方块都同时变成了明亮的颜色(尽管加载是在M1上完成的)。可能是加载文件被破坏了?您的意见--该怎么做?
 
Vinin:


也许你想问如何获得include文件中描述的一个变量的值?


是的,这正是它。有一个文件,你已经发布了,非常有用,OptimizationReport.mq4。为了计算恢复系数,我对它稍作了改进。现在我想在主代码中得到这个变量的值,以便通过检测测试器的通过率和设置PV水平的限制来加速优化。我试图通过全局变量来做到这一点。我的变量的值在主代码中是不可见的。

我在EA中写道。

double myValue = GlobalVariableGet("myValue")。
打印("myValue="+myValue)。
MessageBox("myValue="+myValue)。
Alert("myValue="+myValue)。

在包括(铺设)。

GlobalVariableSet("myValue", 1)。

不起作用,myValue=0.00000000

附加的文件:
 

我想我也要在这里检查一下......。

我如何设置向narod.ru发送电子邮件?

所有的变体都试过了。

SMTP服务器 - smtp.narod.ru

SMTP登录: - имя@narod.ru

SMTP密码 - 密码

来自: slt-soft@narod.ru

致:slt-soft@narod.ru

错误:邮件:登录smtp.narod.ru失败