Помощь в кодировании - страница 65

 

Вот функция, которая будет проверять время открытия ордеров и возвращать цену ордера с самым последним временем открытия (если предыдущих ордеров не было, она вернет 0).

double lastOrderOpenPrice(int magicNumber=0)

{

datetime lastTime = 0;

double lastPrice = 0;

for(int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i,SELECT_BY_POS, MODE_TRADES)==false) break;

if (magicNumber!=0)

if (OrderMagicNumber() != magicNumber) continue;

if (OrderSymbol() != Symbol()) continue;

if (OrderOpenTime() <= lastTime) continue;

lastTime = OrderOpenTime();

lastPrice = OrderOpenPrice();

}

if (lastTime==0)

for(i=OrdersHistoryTotal()-1; i>=0; i--)

{

if (OrderSelect(i,SELECT_BY_POS, MODE_HISTORY)==false) break;

if (magicNumber!=0)

if (OrderMagicNumber() != magicNumber) continue;

if (OrderSymbol() != Symbol()) continue;

if (OrderOpenTime() <= lastTime) continue;

lastTime = OrderOpenTime();

lastPrice = OrderOpenPrice();

}

return(lastPrice);

}

[/PHP]

The assumtion is that currently open orders have times more recent than the already closed orders. If you wish to avoid that assumption, comment out this line :

[PHP] if (lastTime==0)

dasio:
Привет,

Мне нужна двойная функция, которая выдаст мне orderopenprice() последнего открытого ордера.

Кто-нибудь может мне помочь?

Спасибо
 

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

Я использую этот код для расчета лотерей. Иногда я получаю ошибку 131. Код в порядке?

double Lotti1(double StopLoss,double Rischio_per_trade){

double MyLots,AllowedLots,MaxLots,MinLot,StopValue,TickValue;

int RightLots;

AllowedLots=(AccountFreeMargin()* Rischio_per_trade/100);

if (Digits==2 || Digits==4)

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE)/10;

else

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE);

StopValue=StopLoss*TickValue;

MinLot=MarketInfo(Symbol(),MODE_MINLOT);

MaxLots=MarketInfo(Symbol(),MODE_MAXLOT);

RightLots=MathRound(AllowedLots/StopValue);

double soldi_ora = AccountBalance()/100;

MyLots = soldi_ora*(Rischio_per_trade/10);

MyLots = NormalizeDouble(MyLots/StopLoss,2);

MyLots = NormalizeDouble(MyLots/(MarketInfo(Symbol(),MODE_TICKVALUE)/100),2);

MyLots = NormalizeDouble(MyLots/100,2);

return(MyLots);

}[/PHP]

the Stoploss is = [PHP]StopLoss= NormalizeDouble(Ask-SLbuy()-20*Point,5)*10000;

и Rischio_per_trade = 0.5.

Спасибо

 

дасио

попробуйте функцию из этого сообщения: https: //www.mql5.com/en/forum/general

dasio:
Привет,

Я использую этот код для вычисления лотерей. Иногда я получаю ошибку 131. Код в порядке?

double Lotti1(double StopLoss,double Rischio_per_trade){

double MyLots,AllowedLots,MaxLots,MinLot,StopValue,TickValue;

int RightLots;

AllowedLots=(AccountFreeMargin()* Rischio_per_trade/100);

if (Digits==2 || Digits==4)

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE)/10;

else

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE);

StopValue=StopLoss*TickValue;

MinLot=MarketInfo(Symbol(),MODE_MINLOT);

MaxLots=MarketInfo(Symbol(),MODE_MAXLOT);

RightLots=MathRound(AllowedLots/StopValue);

double soldi_ora = AccountBalance()/100;

MyLots = soldi_ora*(Rischio_per_trade/10);

MyLots = NormalizeDouble(MyLots/StopLoss,2);

MyLots = NormalizeDouble(MyLots/(MarketInfo(Symbol(),MODE_TICKVALUE)/100),2);

MyLots = NormalizeDouble(MyLots/100,2);

return(MyLots);

}[/PHP]

the Stoploss is = [PHP]StopLoss= NormalizeDouble(Ask-SLbuy()-20*Point,5)*10000;

и Rischio_per_trade = 0.5.

Спасибо
 

Дорогие друзья!

С уважением желаю вам и всем участникам форума здоровья и счастья в наступающем Новом году! Я действительно чувствую благодарность многим выдающимся и щедрым кодерам здесь, а также блестящим идеям участников этого форума. Все это очень помогает мне в совершенствовании моих торговых навыков (хотя я все еще идиот в этой карьере ).

Недавно, анализируя рынок и свой торговый подход, я задумался об индикаторе, который мог бы мне очень помочь (и другим, возможно, тоже). Моя идея проста, но перенести ее в код - выше моих сил. Я не знаю, существует такой индикатор или нет, поэтому я опишу свою идею подробно и надеюсь, что кто-нибудь поможет мне найти или сделать наиболее подходящий.

- Общая идея: Я хочу постоянно отслеживать рыночную цену в заданном фиксированном диапазоне пунктов. Индикатор должен давать мне необходимую информацию о ценовом действии в пределах сегментов цены (заданного фиксированного диапазона), таких как: (1) верхний уровень, (2) нижний уровень, (3) медианный уровень, (4) количество баров в диапазоне. Мне также хотелось бы знать уровень Point of Control (POC) баров в заданном диапазоне, но, возможно, это слишком сложно в кодировании и занимает много памяти компьютера.

- Аналогия: Я нашел такие популярные индикаторы, как "Профиль рынка", "Ценовой канал", или "Сессионный HiLo", ... разделяют мою идею. Но все они ограничены временным интервалом, как часовой, ежедневный, ... не основаны на заданном фиксированном диапазоне или не имеют некоторых функций, как я упоминал выше. Я пытался перекодировать их, чтобы адаптировать свою идею, но пока безуспешно.

- Список пожеланий к индикатору: (1) Входной параметр: Фиксированный диапазон пунктов; Интервал времени (в минутах, часах или днях) или номер бара, используемый для подсчета количества баров, закрытых в заданном диапазоне; Оповещение при касании ценой уровней (опционально).

(2) Вывод на основной график: отображение горизонтальной линии, соответствующей уровням диапазона (верхний, нижний, средний), и текстовая информация о количестве баров, подсчитанных в диапазоне за заданное время.

(3) Постоянное обновление: информация будет обновляться в трех случаях: (a) цена достигает нового максимума текущего диапазона, (b) нового минимума текущего диапазона, (c) все больше и больше баров консолидируются в текущем диапазоне.

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

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

И еще раз, с Новым годом Вас!

С наилучшими пожеланиями,

fareastol

ой, я забыл прикрепить картинку о том, что я изображаю на индикаторе

Файлы:
 

Прилагаю еще одну картинку для пояснения моей идеи:

a) High или Low текущего диапазона определяется отдельно от входного номера бара. High/Low адаптируется к заданному размеру диапазона и текущему ценовому действию на рынке.

b) Входной номер бара используется только для подсчета количества баров, закрытых в текущем диапазоне.

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

fareastol:
Дорогие друзья,

С уважением, желаю Вам и всем форумчанам здоровья и счастья в наступающем Новом Году! Я очень благодарен многим выдающимся и щедрым кодерам, а также блестящим идеям участников этого форума. Все это очень помогает мне в совершенствовании моих торговых навыков (хотя я все еще идиот в этой карьере ).

Недавно, анализируя рынок и свой торговый подход, я задумался об индикаторе, который мог бы мне очень помочь (и другим, возможно, тоже). Моя идея проста, но перенести ее в код - выше моих сил. Я не знаю, существует такой индикатор или нет, поэтому я опишу свою идею подробно и надеюсь, что кто-нибудь поможет мне найти или сделать наиболее подходящий.

- Общая идея: Я хочу постоянно отслеживать рыночную цену в заданном фиксированном диапазоне пунктов. Индикатор должен давать мне необходимую информацию о ценовом действии в пределах сегментов цены (заданного фиксированного диапазона), таких как: (1) верхний уровень, (2) нижний уровень, (3) медианный уровень, (4) количество баров в диапазоне. Мне также хотелось бы знать уровень Point of Control (POC) баров в заданном диапазоне, но, возможно, это слишком сложно в кодировании и занимает много памяти компьютера.

- Аналогия: Я нашел такие популярные индикаторы, как "Профиль рынка", "Ценовой канал", или "Сессионный HiLo", ... разделяют мою идею. Но все они ограничены временным интервалом, как часовой, ежедневный, ... не основаны на заданном фиксированном диапазоне или не имеют некоторых функций, как я упоминал выше. Я пробовал перекодировать их, чтобы адаптировать свою идею, но пока безуспешно.

- Список пожеланий к индикатору: (1) Входной параметр: Фиксированный диапазон пунктов; Интервал времени (в минутах, часах или днях) или номер бара, используемый для подсчета количества баров, закрытых в заданном диапазоне; Оповещение при касании ценой уровней (опционально).

(2) Вывод на основной график: отображение горизонтальной линии, соответствующей уровням диапазона (верхний, нижний, средний), и текстовая информация о количестве баров, подсчитанных в диапазоне за заданное время.

(3) Постоянное обновление: информация будет обновляться в трех случаях: (a) цена достигает нового максимума текущего диапазона, (b) нового минимума текущего диапазона, (c) все больше и больше баров консолидируются в текущем диапазоне.

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

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

И еще раз, с Новым годом Вас!

С наилучшими пожеланиями,

fareastol

О, я забыл прикрепить картинку о том, что я изображаю на индикаторе
Файлы:
 

Кажется, я все-таки что-то создал сам. Теперь делюсь с вами.

Как указано внутри индикатора, я ничего не изобретаю, просто смешиваю два родственных индикатора, которые у меня есть. Возможно, это не очень хорошо "смешано".

Пожалуйста, посмотрите и сделайте его лучше, если вы считаете его полезным!

 

Нарисовать несколько прямоугольных объектов

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

Я пытаюсь нарисовать несколько прямоугольников, проверяя последние n свечей.

Точка имеет простое правило.

Во вложении пример.

Большой прямоугольник без фона определяет правило (проверка цены от точки 1 до точки 2 с помощью скользящего среднего).

Точкой для рисования прямоугольника является максимум и минимум бара с самым высоким максимумом диапазона.

Как я могу это закодировать?

Спасибо за ответ.

извините,

я не могу прикрепить изображение. Однако предположим, что у нас есть две скользящие средние. Точка 1 - это пересечение быстрой MA с медленной MA вверх, а точка 2 - пересечение быстрой MA с медленной MA вниз.

 

Может ли кто-нибудь помочь мне модифицировать прилагаемый индикатор баров графика rsi?

Этот индикатор отображает синие бары, когда RSi находится выше уровня 50, и красные бары ниже этого уровня.

На самом деле уровень 50 - это средний уровень RSI. Было бы очень полезно добавить еще два уровня - 70 и 30, которые являются уровнями перекупленности и перепроданности. И когда RSI проходит эти два уровня 70/30, свечи тоже должны менять цвет. Буду очень признателен за любую помощь и спасибо.

Файлы:
 

Ласло,

Попробуйте эту версию. Она по-прежнему работает с 2 уровнями, но показывает (или, скорее, не показывает) 3 состояния. Он окрашивает бары, когда уровни пробиты вверх или вниз, а если значение rsi находится между двумя уровнями, он оставляет бары как есть (то есть это простые, не окрашенные индикатором, бары) Вот пример того, как это выглядит и как это сравнивается с "обычным" rsi:

Laszlo:
Может ли кто-нибудь помочь мне модифицировать прилагаемый индикатор баров графика rsi?

Этот индикатор отображает синие бары, когда RSi выше уровня 50 и красные бары ниже этого уровня.

На самом деле уровень 50 - это средний уровень RSI. Было бы очень полезно добавить еще два уровня - 70 и 30, которые являются реальными уровнями перекупленности и перепроданности. И когда RSI проходит эти два уровня 70/30, свечи тоже должны менять цвет. Буду очень признателен за любую помощь и спасибо.
Файлы:
 
fareastol:
Кажется, я все-таки что-то придумал сам. Теперь делюсь с вами.

Как указано внутри индикатора, я ничего не изобретаю, просто смешиваю два родственных индикатора, которые у меня есть. Возможно, это не очень хорошо "смешано".

Пожалуйста, посмотрите и сделайте его лучше, если вы считаете его полезным!

Fareastol, мне нравится ваш индикатор диапазона, и я думаю, что было бы здорово, если бы вы могли добавить перетаскивание "начальной точки" (что у вас есть) и "конечной точки", и тогда он будет автоматически рисовать диапазон для этого периода.

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