[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 542

 
chief2000 писал(а) >>


Não é 1 hora, mas 1 minuto, o tamanho de um arquivo desse tipo é geralmente de cerca de 160 MBytes (10 anos de história) - talvez tenha a ver com espaço em disco?





Obrigado agora eu vejo! Eu baixei o histórico porque o testador não começaria sem ele.
 
Por favor, ajude.
Não fecha as posições. Comm mostra 2 e -2 em int GetTradeSignal_Strategija_1 . Eu tentei e Ts Kim tentou as suas funções. Eu não sei o que está errado.
Arquivos anexados:
pomogite.mq4  21 kb
 
Aqui está o algoritmo ManagePositions_Strategija_1.
Arquivos anexados:
 
Por favor, ajude.
Por que quando testei meu Expert Advisor, recebi este erro:
preço inválido 1,50615000 para a função OrderSend
Todas as cotações no arquivo são de quatro dígitos, mas a mensagem de erro exibe um preço de oito dígitos?
 
LeRus >>:
Помогите пожалуйста.
Почему когда тестирую советник выдает такую ошибку:
invalid price 1.50615000 for OrderSend function
А архиве все котировки четырехзначные а ошибку выдает с восмизначной ценой??


NormalizeDuplo(Preço,Dígito);

 
LeRus >>:
Помогите пожалуйста.
Почему когда тестирую советник выдает такую ошибку:
invalid price 1.50615000 for OrderSend function
А архиве все котировки четырехзначные а ошибку выдает с восмизначной ценой??



É necessário utilizar:

NormalizeDouble(ПЕРЕМЕННАЯ, Digits)
 
Agora tudo está funcionando. Muito obrigado.
 
Olá, tenho um indicador que fiz para medir os movimentos de preços em um determinado período de tempo:
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1  White
#property indicator_color2  Blue

extern int MAPeriod = 14;

// buffers
double V[];           // Собственно значения
double SmoothedValues[];

int DigitsUsed = 8;


int init()
{
   // ассоциируем буферы
   SetIndexBuffer(0, V);
   SetIndexBuffer(1, SmoothedValues);   
   // задаем настройки для буферов
   SetIndexStyle(0, DRAW_LINE);     // Основной сигнал будет сплошной линией
   SetIndexStyle(1, DRAW_LINE);     // Основной сигнал будет сплошной линией   
   IndicatorDigits(DigitsUsed);

   return(0);
}

int start()
{
   int toCount = Bars - IndicatorCounted();  
   double P1,P2,P3;
   // Считаем значения
   for (int i = toCount - 1; i >=0; i--)
   {
      if(Open[i]>Close[i])
        {
         P1=High[i]-Low[i];
         P2=High[i]-Open[i];
         P3=Close[i]-Low[i];
        }
      if(Close[i]>Open[i])
        {
         P1=High[i]-Low[i];
         P2=High[i]-Close[i];
         P3=Open[i]-Low[i];
        }
      
      V[i] = P1+P2+P3;
   }
      
   // Считаем сглаженные значения
   for (i = toCount - 1; i >=0; i--)
   {
      SmoothedValues[i] = NormalizeDouble(iMAOnArray(V, 0, MAPeriod, 0, MODE_SMA, i), DigitsUsed);
   }
      
   
   return(0);
}
Onde o erro, eu preciso deste indicador para calcular a barra sobre os minutos, ou seja, jogá-lo sobre o 1 H e ele adiciona todos os minutos do indicador calculado:
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1  White

// buffers
double V[];           // Собственно значения

int init()
{
   // ассоциируем буферы
   SetIndexBuffer(0, V);
   // задаем настройки для буферов
   SetIndexStyle(0, DRAW_HISTOGRAM);     // Основной сигнал будет сплошной линией  
   return(0);
}

int start()
{
   int toCount = Bars - IndicatorCounted(); 
   // Считаем значения
   for (int i = toCount - 1; i >=0; i--)
    {
     double t=0; //обнуляем счетчик
     int Minut1 = iBarShift(NULL,1,iTime(NULL,Period(),i),false);//Сколько минут прошло в баре
     int Minut0 = iBarShift(NULL,1,iTime(NULL,1,i),false);//нулевая минута в баре
     for(int k=Minut0; k<=Minut1;k++)
      {
       double K=iCustom(NULL,1,"V",14,0,k); //Сам индикатор
       t=t+K;
      } 
     V[i]=t; //забиваем в массив
    }   
   return(0);
}
Cumprimentos a Alexander
 
Rapazes, ajudem os manequins, no tutorial e no fórum para deixar bem claro - não o encontraram.

Modifico a EA para um período de tempo específico M1 e M5, há uma condição simples:

double m1=iMA(NULL,0,period1,0,1,0,0);
double m2=iMA(NULL,0,period2,0,1,0,0);
então if(m1>m2) {okbuy=1;} blah blah blah

Sem perguntas aqui.
Mas eu preciso de outra condição MA (como acima), mas de um prazo específico mais alto D1 (e a EA trabalhará na M1)
Como solicitar no prazo atual e no par atual, os dados indicadores do par atual - mas outro prazo? Para que eu possa então usar esses dados para fazer uma condição.
Eu ficaria especialmente grato se você pudesse sugerir como utilizar prazos mais antigos e outros indicadores no prazo atual, por analogia. Obrigado
 
alfo13 >>:
Ребят, помогите чайнигу, в учебнике и на форуме чтобы сильно понятно - так и не нашел.

Переделываю советник под конкретный таймфрейм M1 и M5, там присутствует простое условие:

double m1=iMA(NULL,0,period1,0,1,0,0);
double m2=iMA(NULL,0,period2,0,1,0,0);
затем if(m1>m2) {okbuy=1;} бла бла бла

Здесь вопросов нет.
Но мне надо чтобы было еще одно условие по MA (по типу вышеописанного) но из старшего конкретного таймфрейма D1 (а советник будет работать на M1)
Как запросить в текущем таймфрейме и в текущей паре, данные индикатора из текущей пары - но другого таймфрема? Чтобы потом можно было по этим данным сделать условие.
Особо буду признателен, если еще подскажете как по аналогии использовать старшие таймфреймы и других индикаторов в текущем периоде. Спасибо


Onde período1 ou período2 inserir PERÍODO_D1