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

 
sasha1995:
 double max=High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)]; // найти максимум последующих 32 баров
 double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)]; // найти минимум последующих 32 баров
 double min=NormalizeDouble(min,Digits); // превращение в T/P

 double max=NormalizeDouble(max,Digits); // превращение в T/P

 Ticket=OrderSend (Symbol(), OP_BUY, lot, Ask, 3,0, max, "Покупаю"); 

Подскажите пожалуйста в чем ошибка ? не хочет создавать take profit 

я кажется понял что ihighest дает только индекс, а как по нему найти самую высокую цену?

Это полная неразбериха. Так:

 double max= NormalizeDouble (High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)], Digits); // найти максимум последующих 32 баров
 double min= NormalizeDouble (Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)], Digits); // найти минимум последующих 32 баров
 
sasha1995:

не понял ) объясните пожалуйста

 Цены high  для текущего графика хранится в массиве -- таймсерии High[]
 
TarasBY:

Это полная неразбериха. Так:


Не получается ( всё равно T/P не  выводит

if(TimeToStr(TimeCurrent(),TIME_SECONDS) == "00:00:00"){ // если время сервера 00:00:00, тогда

 double max= NormalizeDouble (High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)], Digits);

double min= NormalizeDouble (Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)], Digits); // ????? ??????? ??????????? 32 ?????

 }

 int Ticket;

if (TimeToStr(TimeCurrent(),TIME_SECONDS)== "09:00:00"){ // если время сервера 09:00:00, тогда

   if (napravl > 0){ // если направление больше 0, то

      Ticket=OrderSend (Symbol(), OP_BUY, lot, Ask, 3,0,max, "Покупаю"); // купить и поставить Take profit через 35 пунктов Bid + 385 * Point

      Alert (GetLastError());

   }

   else {

      if (napravl < 0) { // иначе, если направление меньше 0, то

        Ticket=OrderSend (Symbol(), OP_SELL, lot, Bid, 3,0,min, "Продаю"); // продать и поставить Take profit через 35 пунктов Ask - 385 * Point

         Alert (GetLastError());

      }

   }

//----

   return(0);

  } 

 

Всем доброго времени суток, интересует такой вопрос, каким образом я могу работать с тиками, начиная с какого-либо события, например, сравнить значение первого тика после какого-либо события и n-ого, как я понимаю во время функции start цена, например, Bid все время перезаписывается, плюс я могу оперировать предыдущим значением, а как оперировать предпредыдущим и так далее, куда и как это все записывать? Спасибо за внимание)

 
sasha1995:

Не получается ( всё равно T/P не  выводит

Вы что, все сговорились?! "всё равно T/P не  выводит" - потрудитесь расшифровать! Сделайте:

Print ("max = ", max, " | min = ", min);

И покажите что в логе.

И не нужно забывать, что есть ПРАВИЛА, которые определяет ДЦ по расстоянию TP и SL от текущей цены - эти правила нужно СОБЛЮДАТЬ!!!

 
sasha1995:

Не получается ( всё равно T/P не  выводит

А  napravl < 0 -- это "прямо на юг"?
 
TarasBY:

Вы что, все сговорились?! "всё равно T/P не  выводит" - потрудитесь расшифровать! Сделайте:

И покажите что в логе.

И не нужно забывать, что есть ПРАВИЛА, которые определяет ДЦ по расстоянию TP и SL от текущей цены - эти правила нужно СОБЛЮДАТЬ!!!



2012.12.08 20:23:18 2012.12.07 00:00  sasha EURUSD.m,M15: max = 1.3079 | min = 1.295

 
dbs039:

Всем доброго времени суток, интересует такой вопрос, каким образом я могу работать с тиками, начиная с какого-либо события, например, сравнить значение первого тика после какого-либо события и n-ого, как я понимаю во время функции start цена, например, Bid все время перезаписывается, плюс я могу оперировать предыдущим значением, а как оперировать предпредыдущим и так далее, куда и как это все записывать? Спасибо за внимание)

 

в массив:

double gda_Array[1000000][3];
int    gi_cnt = 0;
void start()
{
    gda_Array[gi_cnt][0] = GetTickCount();
    gda_Array[gi_cnt][1] = TimeCurrent();
    gda_Array[gi_cnt][2] = Bid;
    gi_cnt++;
    if (gi_cnt > ArrayRange (gda_Array, 0)) ArrayResize (gda_Array, gi_cnt);
}

И играйтесь себе с тиками. Можете их писать в файл.

 
sasha1995:

2012.12.08 20:23:18 2012.12.07 00:00  sasha EURUSD.m,M15: max = 1.3079 | min = 1.295

Это говорит о том, что максимум и минимум рассчитаны.
 
dbs039:

Всем доброго времени суток, интересует такой вопрос, каким образом я могу работать с тиками, начиная с какого-либо события, например, сравнить значение первого тика после какого-либо события и n-ого, как я понимаю во время функции start цена, например, Bid все время перезаписывается, плюс я могу оперировать предыдущим значением, а как оперировать предпредыдущим и так далее, куда и как это все записывать? Спасибо за внимание)

 


В стандартной поставке МТ4 возможности работать с тиковой историей нет. Если вы все же этого хотите, почитайте http://www.opentraders.ru/downloads/17/    http://avtoforex.ru/testirovanie/5-kachestvo-modelirovanija-99-procentov-v-testere-strategij.html
Причина обращения: