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

 

добрый день!

Пишу ТЗ и незнаю как правельней сделать условия когда цена пересекает линию,
может кто подскажет как еше можно это сделать,
пока остановился на этом:


1. еслиopen ниже и close выше линии считаем как пересекли снизу вверх
2. если open выше и close ниже линии считаем как пересекли с верху вниз
3. если open и close выше линии и при этом high выше, low ниже линии считаем как пересекли с верху вниз
4. если open и close ниже линии и при этом high выше, low ниже линии считаем как пересекли снизу вверх


зарание благодарен!



 
Digamma:Пишу ТЗ и незнаю как правельней сделать условия когда цена пересекает линию

может быть Вам будет достаточно анализировать где был предыдущий бар - под линией или над линией и где бар который анализируем?

т.е. if(High[2] < Y_line && Low[2] < Y_line) // бар №2 был под линией

, но оптимальнее писать такое условие if(High[2] < Y_line) - мы ведь знаем, что High[2] всегда больше Low[2]

ЗЫ: по Вашим рисункам сложно предположить как шла цена, она всегда начинает идти от open и сформирует high и low, в какой последовательности можно узнать лишь используя младшие ТФ, анализ close в этой ситуации бессмыслен, т.к. чем старше ТФ тем большее число раз цена обновляла high и low . Вспомните как цена формирует новый бар онлайн?

 
markich:
а можно поточнее что и где удалить? чтоб не удалить что то нуэное


Я смотрю Вам так и не помогли... Пробуем:

0. Закройте терминал, если открыт

1. Ищем файл истории здесь: C:\Program Files\MT4\history\... (вместо МТ4 - название Вашего брокера)

2. Здесь будет скорее всего несколько папок (история демо и реал счетов), выбираем папку счета и ищем файл "GBPUSD15.hst"

3. Удаляем его (или копируем в отдельное место) и запускаем терминал.

4. Обновляем историю (F5)

 
IgorM:

может быть Вам будет достаточно анализировать где был предыдущий бар - под линией или над линией и где бар который анализируем?

т.е. if(High[2] < Y_line && Low[2] < Y_line) // бар №2 был под линией

, но оптимальнее писать такое условие if(High[2] < Y_line) - мы ведь знаем, что High[2] всегда больше Low[2]

ЗЫ: по Вашим рисункам сложно предположить как шла цена, она всегда начинает идти от open и сформирует high и low, в какой последовательности можно узнать лишь используя младшие ТФ, анализ close в этой ситуации бессмыслен, т.к. чем старше ТФ тем большее число раз цена обновляла high и low . Вспомните как цена формирует новый бар онлайн?

спасибо!

а кроме баров есть ещё что-нибудь как можно было бы анализировать такую ситуацию

 
Digamma:

добрый день!

Пишу ТЗ и незнаю как правельней сделать условия когда цена пересекает линию,
может кто подскажет как еше можно это сделать,
пока остановился на этом:


1. еслиopen ниже и close выше линии считаем как пересекли снизу вверх
2. если open выше и close ниже линии считаем как пересекли с верху вниз
3. если open и close выше линии и при этом high выше, low ниже линии считаем как пересекли с верху вниз
4. если open и close ниже линии и при этом high выше, low ниже линии считаем как пересекли снизу вверх


зарание благодарен!



Еще два варианта забыли
 

Госпада профи. Вопрос.

Что происходит с данными в советнике при реконекте.

Тоесть есть переменная объявленная в начале скажем а=0, в процессе работы ей присвоется значение 4. и произойдёт реконнект на сервер. что будет с ней с этой а ?

 
Myth63:

Госпада профи. Вопрос.

Что происходит с данными в советнике при реконекте.

Тоесть есть переменная объявленная в начале скажем а=0, в процессе работы ей присвоется значение 4. и произойдёт реконнект на сервер. что будет с ней с этой а ?

Ничего не изменится с переменной а и её значением, а если, например, был выделен ордер, то выделение аннулируется.
 
TarasBY:
Ничего не изменится с переменной а и её значением, а если, например, был выделен ордер, то выделение аннулируется.


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

 
подскажите пожалуйста скрипт который бы отображал внутреннюю структуру бара на котором установлен маркер (значок или вертикальная линия) т. е. на текущем ТФ устанавливаем маркер на интересующий бар, а внизу отрисовывается внутренняя структура бара с помощью одного из младших ТФ
 
Помогите разобраться с массивами передаваемыми в функцию iMAOnArray.
Эта функция у меня почему-то работает только с буферным массивом (в примере VMA)
и никак не хочет работать с "обычным" (в примере SMA).

Ниже набросок того как я делаю это в своих программах. Что не так?

double MA1[],MA2[],VMA[],SMA[];

int init()
{

   SetIndexBuffer(0,MA1);
   SetIndexBuffer(1,MA2);
   SetIndexBuffer(2,VMA);
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexEmptyValue(2,0.0);  
   ArrayResize(SMA,1);  
   ArrayInitialize(SMA,0);

 return(0);
}

int start() 
{  
 
SMA[i]=...........;
VMA[i]=...........;

MA1[i]=iMAOnArray(SMA,0,8,0,0,0); //----этот вариант НЕ работает
MA2[i]=iMAOnArray(VMA,0,8,0,0,0); //----этот вариант всегда работает  
   
  return(0);
}

Причина обращения: