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

 

как можно в простом вычислении округлить результат в большую сторону?

 
dr.house7:
как можно в простом вычислении округлить результат в большую сторону?

Зависит от того, что вы хотите сделать:

double MathRound( double value)

Возвращает значение, округленное до ближайшего целого числа указанного числового значения.

double MathFloor( double x)

Функция MathFloor возвращает числовое значение, представляющее наибольшее целое число, которое меньше или равно x.

double MathCeil( double x)

Функция MathCeil возвращает числовое значение, представляющее наименьшее целое число, которое больше или равно x.

double NormalizeDouble( double value, int digits)

Округляет значение с плавающей точкой до заданной точности. Возвращает нормализованное значение типа double.

 

Здравствуйте,

Я хотел бы получить помощь в программировании дополнительного входа для этой ea.

Это базовая система grid/mart, которая размещает отложенные ордера выше и ниже начальной цены с равным шагом, где tp для ордеров на покупку равно sl для ордеров на продажу и наоборот.

Из того, что я могу понять, в настоящее время он вычисляет tp/sl как (4 * шаг пункта) от цены, по которой вы начинаете ea.

Я хотел бы получить вход, который позволил бы мне корректировать tp/sl на X количество пунктов.

т.е. (4 х приращение пункта) + X,

спасибо за помощь.

Файлы:
mgrid_ea.mq4  10 kb
 

Требуется помощь в ожидании x-Bars

Привет всем,

как можно запрограммировать следующее:

если закрыть последний ордер, ждать x-Bars для открытия нового ордера?

Спасибо!

С уважением

derumuro

 

Подсчет баров

Я пытаюсь заставить своего эксперта подсчитывать количество баров за определенный период (т.е. последние 20 баров), которые закрылись бычьим или медвежьим способом. Я придумал этот оператор while, но он не работает, он всегда выводит Bull Bars:0 Bear Bars:20. Есть мысли о том, что я делаю неправильно?

// Подсчет бычьих и медвежьих баров

double open, close;

int bull_bars=0, bear_bars=0;

int bar_count=20; // Подсчет баров

if(Volume[0] == 1){ // Проверяем только на открытии нового бара

int bars=0;

while(bars < bar_count){

open=iOpen(NULL,0,bars);

close=iOpen(NULL,0,bars);

if(open<close){bull_bars++;} else {bear_bars++;}

bars++;

}

Print("Bull Bars: ", bull_bars, "Bear Bars: ", bear_bars);

}

 

эрр, я разобрался. Я изменил свой while на этот, и он работает

while(bar_count > i){

open=iOpen(NULL,0,i);

close=iClose(NULL,0,i);

if(open<close){bull_bars++;}

if(open>close){bear_bars++;}

i++;

}

 

Нужна помощь в написании ea - Фактор времени для закрытия ордера

если ордер состоялся, тейк профит=100 пипсов и стоп лосс=100 пипсов написано в ea,

я хотел бы написать дополнительный временной фактор (контроль) для закрытия ордера, как показано ниже:-

говорит, что ордер является ордером на покупку

-----------------------------

1) если в 1-й час, внезапный рост цены на 80 пунктов произойдет за 10 минут в течение этого часа, закрываем ордер;

2) если в течение 2-го часа, внезапный рост цены на 70 пунктов произойдет за 10 минут в течение этого часа, закрываем ордер;

3) если на 3-м часе за 10 минут в течение этого часа произойдет резкий рост цены на 60 пунктов, закрываем ордер;

4) если в 4-й час прибыль составит 50 пунктов, закрываем ордер;

5) если в 1-й час, внезапное падение цены на 60 пунктов произойдет за 10 минут в течение этого часа, закрываем ордер;

6) если во 2-м часе за 10 минут в течение этого часа произойдет внезапное снижение цены на 70 пунктов, закрываем ордер;

7) если в течение 3-го часа, внезапное снижение цены на 80 пунктов произойдет за 10 минут в течение этого часа, закрываем ордер;

8) если в 4-й час, потери составят 50 пунктов, закрываем ордер;

Может кто-нибудь любезно помочь мне написать это? У меня проблема с написанием фактора времени в закрытии ордера.

Спасибо

Rgds,

 

Привет ребята,

У меня к вам вопрос.... знаете ли вы, какой код нужно вставить в советник, чтобы закрыть все открытые сделки в определенное время?...например, у меня 5 открытых сделок и в 16 GMT советник должен закрыть все открытые сделки и не открывать новые сделки до следующего дня.

Спасибо за помощь!

 

Привет mauro269,

if(Hour() = 16) close Order (GMT = 16 +/- Servertime, пример 16 +1 = 17) or see https://www.mql5.com/en/code/8075.

и

if(Hour() = 8) открыть новый ордер

Вот более подробная информация: Документация MQL4

С уважением

derumuro

 

По касанию, а не по закрытию

BBands_stop_v2 и ###Gann_HiLo_Activator_v2### - может ли кто-нибудь улучшить их, пожалуйста?

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

Исключения составляют.

Parabolic SAR - один.

Bat ATR v2 - один при правильной настройке (используя CloseBase=false).

Для меня это означает, что большинство индикаторов менее надежны.

Чем больше таймфрейм, тем больше риск. Если вы ждете четкого сигнала, он часто бывает на другом конце прорыва. Если вы берете его - это часто худший вход.

Может ли кто-нибудь настроить BBands_stop_v2 и ###Gann_HiLo_Activator_v2### на дополнительные параметры, как это делает Bats_v2 (используя CloseBase=false), чтобы они меняли график при касании, пожалуйста?

Два вышеуказанных изменения были бы хорошим началом - но список индикаторов, которые, как мне кажется, не имеют такой возможности, огромен

All_Bands_Stop

PriceChannel_Stop_v6.

All_Trendenvelopes.

TrendEnvelopes_v2.

MT4-LevelStop-Reverse-vB0-4.

#MTF_BBands_Stop_v1

ATRStops_v1.1_MTF

ATRStops_v1.1

mtfatrstops

BrainTrend1stopline

BrainTrend2Stopline

ChandelierStops V1

VolitilityPivot

VoltyChannel_Stop_v2

дельта-стоп

hi-lo_mod

MTF_BrainTrend1

NRTRATRStops

VoltiChannels

и т.д.

etc.....