[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 509

 
Aqui,
int X=0;
double S = 0.0000;
extern double       lot=0.1;
extern double       koef=1.5;
extern int       SL=10;
extern int       TP=10;
double dl;
double a;

int init()
  {
  a=lot;
   return(0);
  }

int deinit()
  {

   return(0);
  }


int start()
 {   
               
              
              
                S=Open[0];
                Sleep(1000);
                
             
             if(OrdersTotal() == 0 && X==1)
              { 
              if (Close[0]>dl){lot=a;}
              X=0;
              }
              
              if(OrdersTotal() == 0 && X==2)
              { 
              if (Close[0]<dl){lot=a;}
              X=0;
              }
                
             
             
 
                   if (OrdersTotal() == 0 && Close[0]>S && Close[1]>Open[1]) 
                           {
                            dl=Close[0];
                            OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-SL*0.0001,Ask+TP*0.0001,"",14774,0,Blue); 
                            lot=lot*koef;
                            X=1;            
                           }
                   
                    if(OrdersTotal() == 0 && Close[0]<S && Close[1]<Open[1]) 
                           {
                            dl=Close[0];
                            OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+SL*0.0001,Bid-TP*0.0001,"",14774,0,Red); 
                            lot=lot*koef;
                            X=2;
                           }

   return(0);
 }
parece ter feito tudo como deveria ser.
 
Olá, você poderia me dizer se é possível usar os valores no relatório gerado ao testar estratégias no roteiro. Por exemplo, o lucro que é exibido na guia do relatório.
 
ALigarx:
Aqui, eu acho que fiz tudo como deveria ser.
Acho que é o suficiente para trocar as linhas
OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-SL*0.0001,Ask+TP*0.0001,"",14774,0,Blue);

и

OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+SL*0.0001,Bid-TP*0.0001,"",14774,0,Red); 
 

Ajuda profissional.

Precisa de uma função para calcular o spread médio, por exemplo, 1 minuto atrás, 3 minutos atrás e 5 minutos atrás. obrigado.

 
T-G:

Ajuda profissional.

Precisa de uma função para calcular o spread médio, por exemplo, 1 minuto atrás, 3 minutos atrás e 5 minutos atrás. obrigado.


Para contá-la, ela precisa ser armazenada também.
 
Vinin:

Para poder contá-la, ela também deve ser armazenada.
Durante 3-5 minutos você também pode armazená-lo em variáveis. você pode contar cada minuto como uma média do max-min, e então armazená-lo em uma média remensurada de 1min ou em um array.
 
T-G:
Durante 3-5 minutos você também pode fazê-lo em variáveis. conte cada minuto como uma média do max-min, e depois armazene-o em uma média re-medida de 1min ou em um array.

Isto já existe há muito tempo. E estava no fórum
 
Vinin:
Isto já existe há muito tempo. Também tem estado no fórum.
Pode ser tomado como base.
Arquivos anexados:
 

Boa tarde.

Uma palavra de conselho para um novato.

Existe um roteiro assim:

#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии

double Buf_0[];     // Открытие индикаторных массивов
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
//--------------------------------------------------------------------
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
   double Arr_1[9999], temp_A;
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=High[i];             // Значение 0 буфера на i-ом баре
      Arr_1[i]=Close[i]-Open[i];
      Alert(Arr_1[i]);
      i--;                          // Расчёт индекса следующего бара
     }
   ArraySort(Arr_1,WHOLE_ARRAY,0,MODE_DESCEND);
   temp_A=Arr_1[0];
   Comment(DoubleToStr("temp_A",8)," - ", Counted_bars);
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------

Por que temp_A em Comentário() sai como 0,00000000, mas Alerta(Arr_1[i]) no loop sai como deveria?

 

Como faço para programar o download/atualização de um horário?