新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 843

 
tim2019:
所以你不认为这太过分了?也许开发者应该看看其他自由职业者的资源,以了解用户友好界面应该是什么样子。我甚至不能马上找到那个注册的按钮。总而言之,这很糟糕。

不,我不知道。

你昨天才在这里注册。你有什么可卖的?在自由职业者服务中,你对执行订单的知识有哪些,水平如何?不是在 "每一个如何,只是为了敲打 "的水平,而是在与一个优秀的,让我们做好的,开发者的水平相匹配的水平?

还是应该在你改变主意之前抓紧时间?

 
Artyom Trishkin:

不,我不知道。

你昨天才在这里注册。你有什么可卖的?你有什么知识可以在自由职业者的服务中以体面的水平执行订单?不是在 "每一个如何,只是为了爆炸 "的水平上,而是在与一个优秀的,让我们说是好的,开发人员的水平上?

还是想在改变主意之前赶快行动?

毕竟,界面是有一些标准的。如果有错误,我们至少应该告知用户是什么样的错误,而不是强迫用户像啄木鸟一样顽固地敲打几次,然后再下载/重新填写。

这与知识或出售的东西有什么关系?我甚至还没有到那个阶段。相反,不幸的是,这就是现代世界的特点。不喜欢它,关闭了它,走了过去。那不是我们的身份。总而言之,这是一次空洞的对话。我说的是歪理,我被说服了,这才是应该做的。好的。

 
tim2019:

毕竟,有一些接口标准。如果有错误,习惯上至少要说明是哪种错误,而不是强迫用户以啄木鸟的顽强精神反复啄磨,再次下载/重新填充。

这与知识或出售的东西有什么关系?我甚至还没有到那个阶段。相反,不幸的是,这就是现代世界的特点。不喜欢它,关闭了它,走了过去。那不是我们的身份。总而言之,这是一次空洞的对话。我说的是歪理,我被说服了,这才是应该做的。好的。

我认识一些人,他们在一天之内就完成了卖家注册。但是这些人,你看他们就知道,他们好奇心强,不着急。而且我看到有人在论坛上问了几个月的问题,但对他们被告知和写的东西却什么都不做。

而且为了记录在案,那里没有人类--所有的登记都由机器人监控。所以你可以敲他的门很长时间,并塞给他一些错误的东西。但是仍然值得阅读他的帖子--一切都应该在那里。不幸的是,我早已过了这些年,而且从那时起,很多事情都发生了变化,所以实质上我不能告诉你到底你的问题是什么。例如,阅读你的供应商简介中的章节。


 

帮助调整开仓的 条件

// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     
// закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     
// закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])

考虑到指标参数是内置在机器人中的

------------------------------------------------------------------+
//|                                       Test advisor on ZigZag.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright c 2010, MQL для тебя."
#property link "http://mql4you.ru"
#property strict
extern double lots = 0.01; //
extern int  TakeProfit=60; //
extern int  StopLoss=100; //
extern int Magic=111111111;
extern int Slippage=3;
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;

datetime Today=0;
double SL,TP;
int ticket;
//±-----------------------------------------------------------------+
int OnInit()
  {
   if(Digits==3 || Digits==5)
     {
      TakeProfit *=10;
      StopLoss   *=10;
      Slippage   *=10;
     }
   return(INIT_SUCCEEDED);
  }
//±-----------------------------------------------------------------+
int deinit() {return(0);}
//±-----------------------------------------------------------------+
int start()
  {

   if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
   if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
                                    //:проверим открытие новой свечи
   if(Time[0]==Today) return(0);
   Today=Time[0];
//:получим значение ZigZag на предыдущей свече
   double lZZ=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,1);
  
// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     {
      SL = NormalizeDouble(Bid+StopLoss*Point, Digits);
      TP = NormalizeDouble(Bid-TakeProfit*Point, Digits);
        {

         ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,SL,TP,"macd sample",Magic,0,Red);
         if(ticket>0)
           {
            // закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
                        if(OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на покупку !");
                    }
                 }
              }
           }
        }
     }
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     {
      TP = NormalizeDouble(Ask+TakeProfit*Point, Digits);
      SL = NormalizeDouble(Ask-StopLoss*Point, Digits);
        {
         ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,Slippage,SL,TP,"macd sample",Magic,0,Green);
         if(ticket>0)
           {
            // закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                        if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на продажу!");
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
int CountSell()//проверкна открытие ордеров на продажу
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            if(OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
int CountBuy()// проверкна открытие ордеров на покупку
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            if(OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
 
Алексей Тарабанов:

如果你不能挣钱,就去偷。

一部电影中的一句经典话语,不记得名字了:"如果你不能偷,那就学学怎么赚钱。
 
下午好,由于某些原因,EA正在加载终端。如何检测该错误?(()谢谢。
 
rabanik:
下午好,由于某些原因,EA正在加载终端。如何检测该错误?(()谢谢。
Профилирование кода - Разработка программ - MetaTrader 5
Профилирование кода - Разработка программ - MetaTrader 5
  • www.metatrader5.com
Профилирование — это сбор характеристик программы во время ее выполнения. При профилировании замеряется время выполнения и количество вызовов отдельных функций и строк в коде программы. При помощи этого инструмента программист может найти наиболее медленные участки кода и провести их оптимизацию. Профилирование можно проводить на обычном...
 

下午好。我已经开始在一个真实账户上 测试专家顾问。我从来没有见过这样的卖单。

 
Lomonosov1991:

下午好。我已经开始在一个真实账户上 测试专家顾问。我从来没有见过这样的卖单。

在 "专家 "杂志中查找

 

祝大家今天愉快朋友们,如果有人知道的话,请告诉我。

这是你可以使用的代码,以获得当前的价格

void OnTick()
  {
   MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.time,": Bid = ",last_tick.bid,
            " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume);
     }
   else 
      Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
  }

问题。

什么是正确的方式将其连接起来?

bool  SymbolInfoTick(
   string    symbol,     // символ
   MqlTick&  tick        // ссылка на структуру
   );

那么,有可能在一个专家顾问中获得几种货币对的当前价格。

好吧,我不擅长编程,所以我正在努力想办法!"。

原因: