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

 
E_mc2 >> :

如果你担心睡过头,那就改成这一行

\ if ( WarningMode>0 ) PlaySound(soundfile); / / / / if ( WarningMode>0 ) PlaySound(soundfile)

指示器给这个人

\ if ( WarningMode>0 && shift==0) GlobalVariableSet("Alarm",1); / / if ( WarningMode>0 && shift==0) GlobalVariableSet("Alarm",1)

并创建一个像这样的指标

int start()
{if(GlobalVariableGet("Будильник"))PlaySound("news.wav");
return(0);
}

而当你入睡时,你不仅要设定主要指标,还要设定闹钟。

闹钟可以通过F3键改变闹钟变量的数值0来手动关闭。

 
Urain >> :

你需要它来做什么?告诉我更多情况,也许有一个解决方案,而你不知道如何提出正确的问题,以便人们理解。

对于你写的东西,我有两个解决方案,如果一次写两个就太长了 :)

..

顺便说一下,最好把这样的长代码作为一个文件附上。

对于代码,有一个特殊的按钮SRC

是的,我需要它,这样我就不会错过信号)。它只发出一次警报,很容易错过,特别是在晚上()()而且它是什么意思--警报?将会发生什么?

我改变了线路......我创建了一个新的指标Alarm.....,但我不明白......无论指标是否发出信号,它都一直在工作。即使指标没有信号,闹钟也会连续发出哔哔声)))),没有信号,但闹钟在工作。

 
E_mc2 >> :

我需要它,这样我就不会错过信号))。它只发出一次警报,很容易错过,特别是在晚上()()而且它是什么意思--警报?将会发生什么?

如上所述,改变你的指标中的线。

编译并运行所附的指标。

它将在每个刻度上响起,直到你禁用指标或重置 "警报 "全局变量。

附加的文件:
wxinptvxq.mq4  1 kb
 

移动平均线 专家顾问。

我已经插入了KimIV 的函数来打开一个订单(GetSizeLot() OpenPosition CorrectTF(int TimeFrame=0) GetNameOP(int op) ModifyOrder() ExistPositions() Message())。还没有到关门的时候。我已经创建了自己的指标数据函数void Indicat_Var(),以便在一个地方拥有指标数据,并在程序的任何地方使用它

当你用函数CheckForOpen()访问Indicat_Var()时,一切正常,但当你用函数CheckForClose()访问Indicat_Var()时,订单没有关闭,我不明白为什么

我还认为函数CalculateCurrentOrders(string symbol)和ExistPositions()是相互重复的。

请帮助我理解

附加的文件:
magkimiv.mq4  15 kb
 

批量计算功能最初是在EA中提供的。如果你添加了另一个(GetSizeLot()),那么(至少)删除原来的一个--LotsOptimized()。

//------------------------------------------------

的确如此。确定是否存在空缺职位的功能相互重复。

其中一个可以被删除。(了解它们的区别,以及你更需要哪一个!)。

//--------------------------------------------

https://www.mql5.com/ru/articles/1385

那里,就在那里,是这个EA的修改版,代码中带有俄罗斯的评论。

修改,--确切地说,是通过关闭。

 

我们是否在图表上标记开盘点和收盘点?

向专家提问--是否有这样的指标或脚本。

绘制图表上的开盘和收盘点?

的命令?它用一条线把它们连接起来。

红色的是一个损失。对分析历史上的错误很有用!

 

我想你已经被问过这个问题了。

你可以用鼠标直接从账户历史中拖动交易到相关图表上。

而且你会得到你所寻找的东西。

我在某个地方看到了这个剧本。我想I.Kim有这样一个剧本。

http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=32

 

有价证券 的行家求助,请他们提供光标

谢谢你!

 

请帮助我理解,为什么我的未平仓订单在趋势改变时不平仓(开放条件)。我怎样才能解决这个错误呢?

代码对我来说是这样的。

extern int TP=40;            //уровень Take Profit
extern int SL=0;              //уровень Stop Loss
extern double Lots1=0.2;      //лот основной сделки
extern double Lots2=0.1;      //лот вспомогательных сделок 
extern int slippage=2;        //проскальзование
int MagicNumber1=5345; //магическое число сделки BUY
int MagicNumber2=1612; //магическое число сделки SELL
// переменная для пятизнаков
int BrokerDecimal = 1;
// и просто нужные переменные (типа флажки)
double ticketbuy;
double ticketsell;



int init()
  {
  // Если брокер дает котировки по валюте с точностью в пять или три знака - пипс будет меньше стандартного в 10 раз - вводим множитель   
  if(Digits==3 || Digits==5) BrokerDecimal=10; 
  // Перемножить все уровни в пипсах на множитель
  SL           = SL * BrokerDecimal; 
  TP           = TP * BrokerDecimal;
  return(0);
  }

int start()
  {
  // Рассчеты и анализ индикаторов
  double jaw=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN, MODE_GATORJAW,1); //синяя линия (челюсть)
  double teen=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN, MODE_GATORTEETH,1);//красная линия (зубы)
  double lips=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN, MODE_GATORLIPS,1);//зеленая линия (губы)
  
  double lastClose=iClose(NULL,0,1);
  
  
  // Собственно тело программы  
  if((OrderSelect( ticketbuy, SELECT_BY_TICKET, MODE_TRADES) == false || OrderCloseTime() > 0 )
    && lips> jaw && lastClose> lips) // условие выставления ордеров БАЙ
    SEND_BUY(); // вынесем "модуль" выставления ордера бай - добавить внизу
  
  if((OrderSelect( ticketsell, SELECT_BY_TICKET, MODE_TRADES) == false || OrderCloseTime() > 0 )
    && jaw> lips && lastClose< jaw) // условие выставления ордеров СЕЛЛ
    SEND_SELL(); // вынесем "модуль" выставления ордера сэлл - добавить внизу
  
  if (OrdersTotal()>=1)
      {
        if(OrderSelect(0, SELECT_BY_POS, MODE_TRADES))
          {
            if(OrderType()==OP_BUY)
              {
                if(( lips== jaw || lips== teen) && lastClose== lips) // условия закрытия сделки БАЙ
                  while(OrdersTotal()>0)
                    {
                      CloseDirect(0,"Принудительное закрытие сделки при обратном движении рынка, ticket=");
                    }
              }
            if(OrderType()==OP_SELL)
              {
                if(( jaw== lips || jaw== teen) && lastClose== jaw) // условия закрытия сделки СЕЛЛ
                  while(OrdersTotal()>0)
                    {
                      CloseDirect(0,"Принудительное закрытие сделки при обратном движении рынка, ticket=");
                    }
              }
          }
        else
          {
            Print("ОШИБКА в Start()(блок закрытия при обратном движении) :OrderSelect() - ",GetLastError());
            return(-1);
          }
      }
         
  return(0);
  }

// "модуль" выставления ордера бай
void SEND_BUY()
  {
  double sl_buy;
  if(! SL)
  { 
  sl_buy=0;
  }
    else
    {
    sl_buy=Ask- SL*Point;
    }
    ticketbuy=OrderSend(Symbol(),OP_BUY, Lots1,Ask, slippage, sl_buy,Ask+ TP*Point,"take_trend", MagicNumber1,0,Blue);
          if( ticketbuy == -1)
          {
          Alert(Symbol(),"ошибка:бай", GetLastError());
          return(-1);
          }
            if( ticketbuy > 1)
            Alert (Symbol(),"бай - ок !");
  }

// "модуль" выставления ордера сэлл
void SEND_SELL()
  {
  double sl_sell;
  if(! SL)
  { 
  sl_sell=0;
  }
   else
   {
   sl_sell=Bid+ SL*Point;
   }
   ticketsell=OrderSend(Symbol(),OP_SELL, Lots1,Bid, slippage, sl_sell,Bid- TP*Point,"take_trend", MagicNumber2,0,Red);
         if( ticketsell == -1)
         {
         Alert(Symbol(),"ошибка:сэлл", GetLastError());
         return(-1);
         }
           if( ticketsell > 1)
           Alert (Symbol(),"сэлл - ок !");
   }

// МОДУЛЬ ЗАКРЫТИЯ СДЕЛОК ПРИ СМЕНЕ ТРЕНДА 
void CloseDirect(int cntr, string comm)
  {
    double closeprice;
    if(OrderSelect( cntr, SELECT_BY_POS, MODE_TRADES))
      {
        RefreshRates();
        if (OrderType()==OP_BUY)
          closeprice=Bid;
        else
          closeprice=Ask;
        if (OrderClose(OrderTicket(),OrderLots(), closeprice,10,Green))
        {
          Print( comm, OrderTicket());
        }
        else
          {
            Print("ОШИБКА в CloseDirect():OrderClose() - ",GetLastError());
          }
      }
    else
      {
        Print("ОШИБКА в CloseDirect():OrderSelect() - ",GetLastError());
      }
  }
 

你能告诉我如何从平滑的rsi中获得信号吗?(MA => RSI)。

原因: