Как кодировать? - страница 157

 

спасибо вольф!

спасибо за ваш ответ и книгу! она новая для меня, так что я буду копаться в ней и изучать дальше. потом я опубликую следующую версию моей ea или другой вопрос, если я столкнусь с препятствиями.

Эрик

 

Фиксация времени объекта

Мне интересно, может ли кто-нибудь подсказать мне, как зафиксировать время объекта (например, стрелки), чтобы при изменении TF графика стрелка оставалась в исходном времени. Аналогично рисованию вертикальной линии и последующему изменению TF графика. Спасибо.

 

как изменить или удалить.00

double HiPrice2 = iHigh(NULL,NULL,1);

double LoPrice2 = iLow (NULL,NULL,1);

double Rangehilo= (HiPrice2-LoPrice2);

if (Digits < 4) Rangehilo = Rangehilo * 100; else Rangehilo = Rangehilo * 10000;

Comment("\n", "Range: ",DoubleToStr(Rangehilo,2)+" pip","\n");

Я пытаюсь создать диапазон PIP между high и low, но он отображается следующим образом

->> Диапазон: 37.00 pip

Мой вопрос в том, как удалить .00, чтобы он показывал только 37 пунктов?

спасибо

 

NormalizeDouble(var1,0);

Люкс

PS: Только что заметил ваш код: DoubleToStr(Rangehilo,0) - замените 2 на 0

 
luxinterior:
NormalizeDouble(var1,0);

Lux

PS: Только что заметил ваш код: DoubleToStr(Rangehilo,0) - замените 2 на 0

Ооооххх, просто маленькая ошибка... спасибо luxinterior!

 

добавление диапазонов stdev

Здравствуйте, извините за глупый вопрос, но пожалуйста, помогите мне:

Если у вас есть индикатор, который состоит из 1 линии в окне графика, и вы хотите добавить полосы стандартного отклонения к этой линии, как полосы Боллинджера. Как это сделать:

Допустим, ваш буфер, в котором отображается ваш оригинальный индикатор, называется abc.

поэтому сначала вы объявляете вот это:

extern int BandsPeriod=20;

extern int BandsShift=0;

extern double BandsDeviations=2.0;

1) вы изменяете

#property indicator_buffers 1 (1 становится 3)

2)

SetIndexBuffer(0,abc);

SetIndexStyle(0,DRAW_LINE);

и добавьте

SetIndexBuffer(1,UpperBuffer);

SetIndexStyle(1,DRAW_LINE);

SetIndexBuffer(2,LowerBuffer);

SetIndexStyle(2,DRAW_LINE);

SetIndexDrawBegin(0,BandsPeriod+BandsShift);

SetIndexDrawBegin(1,BandsPeriod+BandsShift);

3) добавляем остальной код полос Боллинджера в цикл инициализации

int start()

{

int i,k,counted_bars=IndicatorCounted();

double deviation,sum,oldval,newres;

//----

if(Bars<=BandsPeriod) return(0);

//---- начальный ноль

if(counted_bars<1)

и так далее....

4) но как, черт возьми, заменить буфер под названием MovingBuffer в оригинальном коде bands.mq4 на новый буфер из вашего индикатора под названием "abc"?

Какой лучший способ сделать это?

Должен ли я попытаться вставить код моего индикатора в код bands.mq4 или наоборот?

Я приложил хорошо известный кусок кода под названием bands.mq4, чтобы вы могли видеть, с чем я работаю.

Еще раз извините за мое невежество в кодировании.

Может быть, кто-нибудь знает учебник по добавлению stdev bands? Это было бы то, что мне сейчас нужно. Thx

Файлы:
bands.mq4  3 kb
 
 

Кодирование для советника

Привет всем,

Я хотел бы создать кодировку, которая не позволит советнику торговать, если у него уже есть прибыльная сделка в текущей торговой сессии.

У меня есть несколько созданных мной советников, которые позволяют мне выбирать время открытия и закрытия торгов каждый день. Советник также делает что-либо только при открытии каждого нового бара. Таким образом, если у меня есть сделка, и она закрывается, потому что либо сбивается стоп-лосс, либо тейк-профит, советник будет ждать открытия следующего бара, прежде чем открыть новую сделку.

Например, у меня советник настроен на торговлю с 6:00 утра до 2:00 вечера на часовом графике. В 6:00 утра открывается сделка. В 9:23 мой тейк-профит перекрывается, и сделка закрывается. В 10:00 утра будет открыта новая сделка, которая будет оставаться открытой до тех пор, пока либо не будет сбит новый стоп-лосс или тейк-профит, либо время не достигнет 14:00, после чего сделка будет закрыта и торговля будет завершена до конца дня.

Я бы хотел, чтобы советник не только определял время суток, но и распознавал, была ли у меня уже выигрышная сделка в течение торговой сессии. Так, в приведенном выше примере, несмотря на то, что это все еще торговый период дня, советник не будет открывать новую сделку в 10:00 утра, потому что прибыль уже была получена. С другой стороны, если бы в приведенном выше примере был сбит мой стоп-лосс, советник открыл бы новую сделку в 10:00 утра, потому что прибыль еще не была получена.

Я думаю, что мне нужно использовать функцию "OrderSelect" вместе с параметром "Mode_History" для просмотра ранее закрытых сделок, а затем сравнить цену открытия с ценой закрытия ордера, чтобы определить, была ли получена прибыль или убыток. Звучит ли это примерно так? Будучи новичком в программировании, я не уверен, что это лучший способ решения проблемы, и если это так, то мне потребуется много времени, чтобы привести это в правильный формат для правильной работы.

Если кто-нибудь может помочь мне или, по крайней мере, просто дать мне некоторые идеи или соображения о том, как решить эту проблему, я буду благодарен. Если мой пример не имеет смысла, дайте мне знать, и я постараюсь объяснить его лучше.

Заранее спасибо за любую предложенную помощь.

Рон

 

Проверка потерь ордеров...

На этом сайте, по этой ссылке https://www.mql5.com/en/forum/176053/page25 находится копия советника DIN_Kukus_EA_V2.6. Если вы просмотрите содержимое советника, то найдете функцию, которая проверяет потери ордеров в истории ордеров, как вы и описали для себя. Вы можете использовать этот рабочий пример того, как извлечь количество успешных сделок из истории ордеров. Вы можете изменить его, чтобы извлечь историю за определенный период времени, но я надеюсь, что это поможет вам увидеть, как выполнить то, что вы предлагаете сделать для себя...

 

желание использовать результаты индикатора в советнике

Всем привет,

Индикатор Gliding_Channels помещает данные текущего канала в область комментариев окна данных. Он сообщает вертикальную глубину канала на текущем баре, угол канала (как положительный, так и отрицательный), верхнюю и нижнюю границы. Я хочу видеть эти данные, но они конфликтуют с данными, которые советник показывает в области комментариев, из-за чего мои комментарии мерцают.

Я попытался добавить SetIndexBuffer для каждого из четырех данных в индикаторе, чтобы я мог ссылаться на них в своем советнике с помощью iCustom. Таким образом мне удалось ввести в комментарии эксперта только одно из четырех значений. (У меня также продолжала возникать проблема мерцания).

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

В моем советнике я буду называть эти четыре значения "depth, angle, limitHI и limitLO".

Файлы: