[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 235

 
Как найти самый маленький максимум свечи за определенный период баров?
 
savage_pinguin:
Как найти самый маленький максимум свечи за определенный период баров?


Так попробуйте

bar=iLowest(NULL,0,MODE_HIGH,10,10);

 
alsu:

Обратите внимание.

1) для сигнала "пересечение двух линий" недостаточно условия "линия1[1]>линия2[1]". Надо "линия1[1]>линия2[1]&&линия1[2]<линия2[2]"

2) параболик надо бы сравнивать не с Open, а с High и Low, причем отметьте, вы его вычисляете на нулевом баре, а значение Open[1] берете с первого.

Благодарю за внимание к моим вопросам. Я сделал то, что Вы посоветовали. Но теперь советник вообще перестал торговать. Возможно, я понял Вас неправильно и что-то сделал не так, или в коде остались ещё какие-нибудь ошибки?

На данный момент код выглядит так:

//+-------------------------------------------------------------------------------------+
//| Расчет значений технических индикаторов с формированием сигналов для позиций        |
//+-------------------------------------------------------------------------------------+
void GetSignal()
{
 Signal = 0;
// - 1 - == Получение значений индикаторов ==============================================
 double SAR = iSAR(Symbol(), 0, SARStep, SARMaximum, 0);
 double EnvUp = iEnvelopes(Symbol(), 0, EnvPeriod, EnvMethod, EnvShift, EnvPrice,
 EnvDeviation, MODE_UPPER, 1);
 double EnvDn = iEnvelopes(Symbol(), 0, EnvPeriod, EnvMethod, EnvShift, EnvPrice,
 EnvDeviation, MODE_LOWER, 1);
 double StochM = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod,
 StochPrice, MODE_MAIN, 1);
 double StochS = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod,
 StochPrice, MODE_SIGNAL, 1);
// - 1 - == Окончание блока =============================================================

// - 2 - == Генерация сигнала ===========================================================
 if (SAR < Low[1])
   {
    Signal = 3;                                                          // Закрытие SELL
    if (StochM > StochS && StochM < StochS && StochM >= 80 &&
    StochS >= 80 && High[1] >= EnvUp && SAR < High[1])
      Signal = 1;                                                         // Открытие BUY
   }   
 
 if (SAR > High[1])
   {
    Signal = 4;                                                           // Закрытие BUY
    if (StochM < StochS && StochM > StochS &&  StochM <= 20 &&
    StochS <= 20 && Low[1] <= EnvDn && SAR > Low[1])
      Signal = 2;                                                        // Открытие SELL
   }   
// - 2 - == Окончание блока =============================================================
}

Пожалуйста, помогите разобраться, очень хочется сделать этот советник торгующим.

Edit: Большая просьба: если это возможно, оформляйте свой ответ в виде кода.
Не забывайте, что в программировании я пока что полный "чайник"... Не хочется потом переспрашивать.
 

Кто нибудь, объясните мне код Ilan 1.4. Очень нужно! Т.е. я хочу его под себя немножко изменить, но чужой код вообще не понимаю. Кто нибудь сможет, хотябы по блокам объяснить, где что делается?

Идеи фонтанируют, но чтобы их реализовать пока не хватает мозгов, да что там говорить, c MQL4 знаком еще только неделю.

Если кто нибудь поможет, буду очень благодарен, можете писать на delit-0202@rambler.ru

И потом, в советнике как определять тренд? Хотябы общий, можно даже запаздывающий. Как можно это сделать?

 
daytrader19:

Благодарю за внимание к моим вопросам. Я сделал то, что Вы посоветовали. Но теперь советник вообще перестал торговать. Возможно, я понял Вас неправильно и что-то сделал не так, или в коде остались ещё какие-нибудь ошибки?

На данный момент код выглядит так:

Пожалуйста, помогите разобраться, очень хочется сделать этот советник торгующим.

Edit: Большая просьба: если это возможно, оформляйте свой ответ в виде кода.
Не забывайте, что в программировании я пока что полный "чайник"... Не хочется потом переспрашивать.

как же ему торговать, если вот это

StochM < StochS && StochM > StochS

заведомо невыполнимое условие? Вам надо вычислить значения стохастика на первом и втором барах, для этого понадобятся не две, а четыре переменные

 double StochM1 = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod,
 StochPrice, MODE_MAIN, 1);
 double StochS1 = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod,
 StochPrice, MODE_SIGNAL, 1);
 double StochM2 = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod,
 StochPrice, MODE_MAIN, 2);
 double StochS2 = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod,
 StochPrice, MODE_SIGNAL, 2);

if( StochM1 < StochS1 && StochM2 > StochS2 ...
 

Если Вас не затруднит, хотелось бы уточнить ещё один момент. Я понял свою ошибку со Стохастиком, а что на счёт других индикаторов? В использовании Энвелопеса и Параболика нет ошибок? У меня должны быть...)) Посмотрите, пожалуйста, и открытие и закрытие.

И спасибо за последний билд MT5, я его уже скачал.

 

Кто-то тут только что спросил как менять содержание текста. Пока я делал ответ пост исчез. На всякий случай отвечу, мож кому-то понадобится.

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start(){

   ObjectCreate("1",OBJ_TEXT,0,Time[0],Open[0]);
   ObjectSet("1",OBJPROP_FONTSIZE,16);
   ObjectSet("1",OBJPROP_COLOR,Red);
   if(!ObjectSetText("1","Пример создания нового текста",16,"Verdana",Red)){
    Alert("Ошибка № ",GetLastError()," при изменении описания текста");
   }

  return(0);
}
//+------------------------------------------------------------------+ 
 

у меня не задаётся текст..

ObjectSetText(name,buf1[i]/buf2[i]*100,6,"Arial",C'0,33,0');
ошибка 4062
 
eddy:

у меня не задаётся текст..


buf1[i]/buf2[i]*100 - второй параметр этой функции должен быть строковым. Читайте параметры тут - bool ObjectSetText(string name, string text, int font_size, string font_name=NULL, color text_color=CLR_NONE)
 
а как из int сделать string? кроме как написать string text=int_peremennaya
Причина обращения: