Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 719

 
Artyom Trishkin:

Antes de OrderModify(), imprima os valores do preço de abertura e o novo preço de parada.

E mantenha seu desrespeitoso "não?" para si mesmo se você quiser ajuda. No entanto, coloquei um modelo totalmente funcional para qualquer rede de arrasto bem nesta linha - você pode pesquisar.

desrespeitoso "não? - Desculpe, não colocou nada nisso.

 
        if((fMarketOrderss(OP_SELL)>=1)) { 
       if( ((Bid-Opens)/ma+Times/1440) > SELL ) {
if(OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0,NULL,321,0,1)>0){} }}

Por favor, avise! Que função deve ser adicionada para substituir a VENDA por números que vão em ordem. Se houver um acordo aberto, então coloque 1. Assim que este acordo for aberto, ele dará 2 e assim por diante. Se não houver acordos, este número será redefinido.

 
Artyom Trishkin:

Antes de OrderModify(), imprima os valores do preço de abertura e o novo preço de parada.

Ele imprime os mesmos valores. Por que ele verifica != então, você pode me dizer?

 
Andrey Sokolov:

Escreve os mesmos valores. Por que ele verifica != então, você pode me dizer?

Leia sobre a comparação de números reais.

 
Artyom Trishkin:

Leia sobre a comparação de números reais.

Fora para ler. Obrigado
 
Andrey Sokolov:
Estou indo para ler. Obrigado

Não se limite a comparar, mas verifique se "não é hora de mudar", ou seja, não é menos do que necessário "n>=p".

 
Vitaly Muzichenko:

Não se limite a comparar, mas verifique se "não é hora de mudar?", ou seja, "n>=p" não é menos do que o necessário

Obrigado
 
Olá, tenho um indicador de níveis de Cor, tenho um problema quando tento aplicar 2 partes deste indicador em um gráfico, ou seja, a janela do 1º indicador desaparece e apenas a janela do 2º indicador é exibida, e quando clico para criar um objeto - um retângulo, 2 objetos são criados, um de um indicador e o outro de outro. Por favor, informe como consertá-lo, para que várias partes deste indicador possam ser usadas no gráfico, e os objetos possam ser criados corretamente? Posso mudar algo no código ou vice versa?Exemplo
Arquivos anexados:
 

Montei o indicador o melhor que pude
Necessidade de ajuda para destacar barras, por exemplo um retângulo, quando os índices estão na zona +/- 0,4%.
Ou pelo menos o próprio código
Meu código indicador

//+------------------------------------------------------------------+
//|                           Copyright © 2018, forex-time@mail.ru   |
//|                        Copyright © 2018, mr.aliaksei@yandex.ru   |
//|                                         % Алексея Королькова.mq4 |
//+------------------------------------------------------------------+
#property copyright   "Copyright © 2018, forex-time@mail.ru"
#property copyright   "Copyright © 2018, mr.aliaksei@yandex.ru"
#property link        "http://axe44.opentraders.ru/bio/"
#property version     "1.10"
#property strict 
//+------------------------------------------------------------------+
//--- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  LimeGreen
#property  indicator_color2  Red
#property  indicator_color3  Blue
#property  indicator_width1  2
#property  indicator_width2  2
#property  indicator_width3  2
#property  indicator_level1  0.0
#property  indicator_levelcolor DarkGray
//--- indicator parameters
input int InpFastEMA=14;   // Fast EMA Period
input int Metod     =1;   // Metod EMA Period 0-3
input string Pereferics="";// Переферикс после названия основной пары. Например EURUSD.m где переферикс .m
//--- indicator buffers
double Buffer1[];
double Buffer2[];
double Buffer3[];
//--- right input parameters flag
bool   ExtParameters=false;
string IndName= "% A.K ("+IntegerToString(InpFastEMA)+")";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
   IndicatorDigits(Digits+1);
//--- drawing settings
   SetIndexBuffer(0,Buffer1);SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(1,Buffer2);SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(2,Buffer3);SetIndexStyle(2,DRAW_LINE);

//--- name for DataWindow and indicator subwindow label
   IndicatorShortName(IndName);
//--- check for input parameters
   if(InpFastEMA<=1  )
     {
      Print("Wrong input parameters");
      ExtParameters=false;
      return(INIT_FAILED);
     }
   else
      ExtParameters=true;
//--- initialization done
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,
                 const int prev_calculated,
                 const datetime& time[],
                 const double& open[],
                 const double& high[],
                 const double& low[],
                 const double& close[],
                 const long& tick_volume[],
                 const long& volume[],
                 const int& spread[])
  {
    int i = rates_total-prev_calculated-1;

    while(i >= 0)  
      {
      double eurusd=(((iMA("EURUSD"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("EURUSD"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double eurjpy=(((iMA("EURJPY"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("EURJPY"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double usdjpy=(((iMA("USDJPY"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("USDJPY"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double eur=(eurusd+eurjpy)/2;
      double usd=(-eurusd+usdjpy)/2;
      double jpy=-(usdjpy+eurjpy)/2;
      Buffer1[i]=ND(eur,1);
      Buffer2[i]=ND(usd,1);
      Buffer3[i]=ND(jpy,1);

      Pair(IndName+"EUR","EUR",54,indicator_color1);
      Pair(IndName+"USD","USD",28,indicator_color2);
      Pair(IndName+"JPY","JPY",5,Blue);
                  
      i--;}
return(rates_total);}
//+------------------------------------------------------------------+
//|ND - нормализация числа                                           |
//-------------------------------------------------------------------+
double ND(double value, int digits) {  
      return(NormalizeDouble(value, digits));}  
//+------------------------------------------------------------------+
void Pair(string name,string txt, int shift, color col){
      int window=WindowFind(IndName);
      //если окно не найдено - "текстовые метки" будут созданы в окне графика
      if(window<0) window=0;
       ObjectCreate(name,OBJ_LABEL,window,0,0,0,0,0,0);
          ObjectSet(name,OBJPROP_CORNER,0);
          ObjectSet(name,OBJPROP_XDISTANCE,shift);
          ObjectSet(name,OBJPROP_YDISTANCE,2);
          ObjectSet(name,OBJPROP_CORNER,CORNER_RIGHT_UPPER);
      ObjectSetText(name,txt,8,"Arial",col);}
//+------------------------------------------------------------------+

O código foi-me recomendado, mas eu não sei como anexá-lo:

ObjectCreate(VLINE, OBJ_VLINE, 0, 0, 0);
ObjectSet(VLINE, OBJPROP_COLOR, VLINE_COLOR);
ObjectSet(VLINE, OBJPROP_STYLE, VLINE_STYLE);

ObjectDelete(VLINE);

if(Bf<0.4 && Bf>(-0.4))
ObjectSet(VLINE, VLINE, VLINE);

Agradecemos antecipadamente.

 
É possível, em vez de
Alto/Baixo>1,02 do
Alto>Baixo*1.02
Qual opção é melhor para o indicador