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

 
-Aleks-:

Você tem certeza de que olhou para o último código que postou? Se assim for, preciso descansar... obrigado.
Rastrear a variável"c".
 
Artyom Trishkin:
Rastrear a variável"c".

Sim, obrigado! Estou vendo - mas ainda não consigo entender bem este código - que será experimentado!

Victor Nikolaev- obrigado por sua ajuda!

 

Bom dia a todos!

Favor me dizer se você pode alterar o valor do MAJIC NUMBER em uma ordem que já foi fechada e aparece na lista de ordens fechadas.

Isto é, alterar o valor do MAJIC NUMERO após o fechamento do pedido.

Se for possível, então qual função deve ser usada para mudá-la. Eu não encontrei tal função no trabalho de Kim.

Obrigado.
 
ANDREY:

Bom dia a todos!

Favor me dizer se você pode alterar o valor do MAJIC NUMBER em uma ordem que já foi fechada e aparece na lista de ordens fechadas.

Isto é, alterar o valor do MAJIC NUMERO após o fechamento do pedido.

Se for possível, então qual função deve ser usada para mudá-la. Eu não encontrei tal função no trabalho de Kim.

Obrigado.

Você não pode. E por que você precisa disso - talvez haja outra solução para o problema?
 
-Aleks-:

Você não pode. Por que você gostaria de fazer isso em primeiro lugar - existe outra solução para o problema?

Obrigado pela dica.

Enquanto eu esperava por uma resposta, algo me veio à mente. Se não funcionar, vou anotar o que preciso.

Você pode me dar uma dica?

if(OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // if LAST order
if ( OrderType ()==OP_SELL)// SEL

X = OrderProfit( );// armazenar o valor TakeProfit

if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // if LAST order
if ( OrderType ()==OP_SELL)// SEL

if(X < 0)// e se esta Venda foi fechada na parada

ABRIR OUTRO PEDIDO

PERGUNTA

Como codificar um adendo a estas condições.

Não apenas a última ordem, mas também as próximas à última e últimas ordens devem ser fechadas na parada.

e só então

PARA ABRIR MAIS UM PEDIDO.

Obrigado.



 
geratdc:Por enquanto fiz as alterações recomendadas ao código no Bloco de Notas. Por favor, verifique se eu corrigi o código corretamente?

Eu já dei uma olhada. Corrigido. No testador durante 3 meses, este é o resultado

O sorteio é grande.

 
Você pode me dizer como encontrar os números das últimas 5 travessias no dia atual?
 
missha32: Para encontrar o número de barras cruzadas por um número Mach de 5 últimas travessias para o dia atual

Se às 4 da manhã - ainda não há muitos bares por hoje. No H4 há apenas 6 barras em um dia. você precisa definir o número de barras a serem pesquisadas ou o número de crossovers.

//+-------------------------------------------------------+
//| Подсчет пересечений MA                    PROBA_MA.mq4|
//+-------------------------------------------------------+
#property strict

extern int Баров = 500;  // Баров для подсчета пересечений МА
extern int MA_1  =10;
extern int MA_2  =100;

void OnStart()
{
  int Бар, Счетчик;
  double MA_1_Предыдущая, MA_2_Предыдущая,
         MA_1_Следующая,  MA_2_Следующая;

  ObjectsDeleteAll(); // Удалить вертикальные линии

  for(Счетчик=0, Бар=0; Бар<Баров; Бар++) // Начинаем с послнего бара
  {
    MA_1_Предыдущая = iMA(_Symbol,0,MA_1,0,MODE_EMA,PRICE_CLOSE,Бар+1);
    MA_1_Следующая  = iMA(_Symbol,0,MA_1,0,MODE_EMA,PRICE_CLOSE,Бар);
    MA_2_Предыдущая = iMA(_Symbol,0,MA_2,0,MODE_EMA,PRICE_CLOSE,Бар+1);
    MA_2_Следующая  = iMA(_Symbol,0,MA_2,0,MODE_EMA,PRICE_CLOSE,Бар);

    if((MA_1_Предыдущая>=MA_2_Предыдущая && MA_1_Следующая<=MA_2_Следующая) ||
       (MA_1_Предыдущая<=MA_2_Предыдущая && MA_1_Следующая>=MA_2_Следующая))
    {
      Счетчик++;
      Alert(Счетчик, "  Бар = ", Бар, "  T = ",Time[Бар]);

      // Создать вертикальную линию
      ObjectCreate( (string)Счетчик+"_"+(string)Бар,OBJ_VLINE,0,Time[Бар],0);

      if(Счетчик == 5) break;  // 5 линий есть - выход
    }
  }
}

distâncias grandes = tendência

 

Você pode me dar uma dica?

if(OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // if LAST order
if ( OrderType ()==OP_SELL)// SEL

X = OrderProfit( );// armazenar o valor TakeProfit

if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // if LAST order
if ( OrderType ()==OP_SELL)// SEL

if(X < 0)// e se esta Venda foi fechada na parada

ABRIR OUTRO PEDIDO

PERGUNTA

Como codificar um adendo a estas condições.

Não apenas a última ordem, mas também as próximas à última e últimas ordens devem ser fechadas na parada.

e só então

PARA ABRIR MAIS UM PEDIDO.

Obrigado.
 

Eu preciso de algum tipo de indicador para mudar o indicador, eu quero traçar uma linha do alto para o baixo no gráfico de horas a cada 24 horas, e obter os dados sobre o comprimento da linha e a inclinação e poder trabalhar com esses dados no código, eu não sou um grande especialista em mql4 se eu escrever do zero, grande problema?

Eu tenho uma linha esticada de duas coordenadas, não importa como eu a virei, é apenas uma bagunça, por favor me ajude, talvez eu não devesse ter mexido com ela.

#property indicator_chart_window
//---- input parameters
extern int   CountDays     =22;
extern int   GMT           =0;
extern color pivot         =Gold;
extern color day           =Yellow;
extern color metka         =MidnightBlue;

//---- indicator buffers
double range[];
double ny_close[];
double low[];
double high[];
datetime time1;
datetime time2;
datetime ny_time[];

int shift, num;
int ny_shift[];
datetime prevDay=0;
bool fTime;
// ----
void ObjDel()
{
   if (ObjectsTotal() > 0)
   for (num=0;num<=CountDays;num++)
   {
   ObjectDelete("PPw["+num+"]");   
          
   }
   ObjectDelete("mPw");           
}
// ----
void PlotLine(string name,double value,double value1,double line_color,double style)
{
   double valueN=NormalizeDouble(value,Digits);
   double valueN1=NormalizeDouble(value1,Digits);
   bool res = ObjectCreate(name,OBJ_TREND,0,time1,valueN,time2,valueN1);
   ObjectSet(name, OBJPROP_WIDTH, 1);
   ObjectSet(name, OBJPROP_STYLE, style);
   ObjectSet(name, OBJPROP_RAY, false);
   ObjectSet(name, OBJPROP_BACK, true);
   ObjectSet(name, OBJPROP_COLOR, line_color);
} 
//***********
void PlotVLine(string name,double tm,double line_color)
{
   bool res = ObjectCreate(name,OBJ_VLINE,0,tm,0);
   ObjectSet(name, OBJPROP_WIDTH, 0);
   ObjectSet(name, OBJPROP_STYLE, 2);
   ObjectSet(name, OBJPROP_COLOR, line_color);
} 
//***********
void PlotPrice(string name, double value, double line_color)
{
    double valueN=NormalizeDouble(value,Digits);
    bool res = ObjectCreate(name, OBJ_ARROW, 0, time2,valueN);
    ObjectSet(name, OBJPROP_COLOR, line_color);
    ObjectSet(name, OBJPROP_WIDTH, 1);
    ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
}       
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   fTime = true;
   IndicatorBuffers(2);
   SetIndexBuffer(0,range);
   SetIndexBuffer(1,ny_close);
   return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+   
int deinit()
{
   ObjDel();
   Comment("");
   return(0);
}
//+------------------------------------------------------------------+
//| LNX_Pivots_v3.1                                                    |
//+------------------------------------------------------------------+
int start()
{
   int i;
   double P;
  
   datetime cDay = iTime(NULL,PERIOD_D1,0) + (GMT-Period()/60.0)*3600;
   if (cDay != prevDay || fTime)  
   {
   ObjDel();
   ArrayResize(ny_time,CountDays+1);
   ArrayResize(ny_shift,CountDays+1);
   ArrayResize(high,CountDays+1);
   ArrayResize(low,CountDays+1); 
   ArrayResize(range,CountDays+1);    
      for (shift=0;shift<=CountDays;shift++)
      {
      ny_time[shift]  = iTime(NULL,PERIOD_D1,shift) + (GMT-Period()/60.0)*3600;
      ny_shift[shift] = iBarShift(NULL,0,ny_time[shift]);
      ny_close[shift] = iClose(NULL,0,ny_shift[shift]);        
      }
     
 for (shift=0;shift<=CountDays-1;shift++)
      {
      int length = ny_shift[shift+1]-ny_shift[shift];
   
      high[shift] = High[iHighest(NULL,0,MODE_HIGH,length,ny_shift[shift])];
      low[shift]  = Low[iLowest(NULL,0,MODE_LOW,length,ny_shift[shift])];
      range[shift] = high[shift] - low[shift]; 
      }
  
  for (shift=0;shift<=CountDays-1;shift++)
      {
  
           
      P  = (ny_close[shift]+high[shift]+low[shift])/3;
      

      time1 = ny_time[shift]+Period()*60;    
         
         if (shift==0) 
         {
         time2 = ny_time[shift] + 24*3600+Period()*60 ;
         PlotVLine("pV0",time2,day);
         PlotPrice("mPw",P,metka);
                 
         }
         else
         time2 = ny_time[shift-1]+Period()*60;
         PlotVLine("pV["+shift+"]",time1,day);
            
      int pstyle=0;
   PlotLine("PPw["+shift+"]",P,P,pivot,pstyle); // *********две координаты*******

}
   fTime = false;
   prevDay = cDay;
   }           
   return(0);
}
//+------------------------------------------------------------------+
Razão: