[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 542

 
chief2000 писал(а) >>


Non è 1 ora ma 1 minuto, la dimensione di un tale file è di solito intorno ai 160 MByte (10 anni di storia) - forse ha a che fare con lo spazio su disco?





Grazie ora capisco! Ho scaricato la cronologia perché il tester non partiva senza.
 
Per favore, aiutatemi.
Non chiude le posizioni. Comm mostra sia 2 che -2 nell' int GetTradeSignal_Strategija_1 . Ho provato le funzioni di Kim. Non so cosa ci sia di sbagliato.
File:
pomogite.mq4  21 kb
 
Ecco l'algoritmo ManagePositions_Strategija_1.
 
Per favore, aiutatemi.
Perché quando provo il mio Expert Advisor ottengo questo errore:
prezzo non valido 1.50615000 per la funzione OrderSend
Tutte le quotazioni nell'archivio sono a quattro cifre, ma il messaggio di errore visualizza un prezzo a otto cifre?
 
LeRus >>:
Помогите пожалуйста.
Почему когда тестирую советник выдает такую ошибку:
invalid price 1.50615000 for OrderSend function
А архиве все котировки четырехзначные а ошибку выдает с восмизначной ценой??


NormalizeDouble(Price,Digit);

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



È necessario utilizzare:

NormalizeDouble(ПЕРЕМЕННАЯ, Digits)
 
Ora tutto funziona. Grazie mille.
 
Ciao, ho un indicatore che ho fatto per misurare i movimenti di prezzo in un certo lasso di 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);
}
Dove l'errore, ho bisogno di questo indicatore per calcolare la barra sui minuti, cioè gettarlo sul 1 H e aggiunge tutti i minuti dell'indicatore calcolato:
#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);
}
Saluti Alexander
 
Ragazzi, aiuto dummies, nel tutorial e sul forum per renderlo molto chiaro - non hanno trovato.

Modifico l'EA per un timeframe specifico M1 e M5, c'è una semplice condizione:

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

Nessuna domanda qui.
Ma ho bisogno di un'altra condizione MA (come sopra) ma da un timeframe specifico superiore D1 (e l'EA funzionerà su M1)
Come richiedere nel timeframe corrente e nella coppia corrente, i dati dell'indicatore dalla coppia corrente - ma un altro timeframe? In modo da poter poi utilizzare questi dati per creare una condizione.
Vi sarei particolarmente grato se poteste suggerirmi come usare i vecchi timeframe e altri indicatori nel timeframe corrente per analogia. Grazie
 
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)
Как запросить в текущем таймфрейме и в текущей паре, данные индикатора из текущей пары - но другого таймфрема? Чтобы потом можно было по этим данным сделать условие.
Особо буду признателен, если еще подскажете как по аналогии использовать старшие таймфреймы и других индикаторов в текущем периоде. Спасибо


Dove periodo1 o periodo2 inserire PERIOD_D1