Jump to content
Programmer

Общие вопросы по языку MQL

Recommended Posts

torgf
В 01.10.2018 в 01:07, DVargo сказал:

Скрипт из индикатора запускается

Ура-а!!!✌️

Спасибо.😁

Edited by AntFX
п. 4

Share this post


Link to post
Share on other sites
sviter

Здраствуйте! Помогите с формулой! Нужно мне сделать следующее....Нужно узнать среднюю цену между ордерами....

Конкретнее...
Открылся у меня к примеру ордер на BUY с лотом в 0.1 с ТР в (допустим)100 пунктов, если цена пошла в другую сторону на 50 пунктов, то открывается еще один ордер на BUY, но уже с лотом в (допустим)0.5 и уже с ТР в (допустим)10 пунктов....так вот проблема в этом как расчитать сумму с первого ордера, по цене и количеству пунктов, что бы второй ордер рассчитывался по формуле и перекрывал первый.....и сумма лота и ТР....кароче такой своеобразный сеточник

Share this post


Link to post
Share on other sites
AntFX
1 час назад, sviter сказал:

Здраствуйте! Помогите с формулой! Нужно мне сделать следующее....Нужно узнать среднюю цену между ордерами....

Конкретнее...
Открылся у меня к примеру ордер на BUY с лотом в 0.1 с ТР в (допустим)100 пунктов, если цена пошла в другую сторону на 50 пунктов, то открывается еще один ордер на BUY, но уже с лотом в (допустим)0.5 и уже с ТР в (допустим)10 пунктов....так вот проблема в этом как расчитать сумму с первого ордера, по цене и количеству пунктов, что бы второй ордер рассчитывался по формуле и перекрывал первый.....и сумма лота и ТР....кароче такой своеобразный сеточник

средняя цена по открытым однонаправленным ордерам по одной паре:

 

double MeanPrice(string symbol){

   double summ=0, lots=0, mean=0;

 

   for(int i=0; i<OrdersTotal(); i++)

      if(OrderSelect(i) && OrderSymbol()==symbol && OrderType()<2){

         summ+=OrderProfit()*OrderLots();

         lots+=OrderLots(); }

 

   if(lots>0) mean=summ/lots;

   return(mean); }

Edited by AntFX

Статистика спредов | ПАММ-корректировщик | Section Divine

אף אדם לא לבד - כולנו איש אחד בלב אחד

Share this post


Link to post
Share on other sites
sviter
1 час назад, AntFX сказал:

средняя цена по открытым ордерам по одной паре:

 

double MeanPrice(string symbol){

   double summ=0, lots=0, mean=0;

 

   for(int i=0; i<OrdersTotal(); i++)

      if(OrderSelect(i) && OrderSymbol()==symbol && OrderType()<2){

         summ+=OrderProfit()*OrderLots();

         lots+=OrderLots(); }

 

   if(lots>0) mean=summ/lots;

   return(mean); }

Смею догадываться что формула будет 0.1 * спред / 50 пунктов ???? Это я про то как будет выщитываться второй ордер, в зависимости от первого, через количество пунктов

Share this post


Link to post
Share on other sites
AntFX
1 минуту назад, sviter сказал:

Смею догадываться что формула будет 0.1 * спред / 50 пунктов ???? Это я про то как будет выщитываться второй ордер, в зависимости от первого, через количество пунктов

Это формуле по уже открытым ордерам считает и спред не имеет значения


Статистика спредов | ПАММ-корректировщик | Section Divine

אף אדם לא לבד - כולנו איש אחד בלב אחד

Share this post


Link to post
Share on other sites
sviter
14 минут назад, AntFX сказал:

Это формуле по уже открытым ордерам считает и спред не имеет значения

тогда подскажите формулу пожалуйста... как мне выщитать какой будет второй ордер через 50 пунктов, по принципу сетки, что бы он перекрывал первый

Share this post


Link to post
Share on other sites
AntFX
12 минут назад, sviter сказал:

тогда подскажите формулу пожалуйста... как мне выщитать какой будет второй ордер через 50 пунктов, по принципу сетки, что бы он перекрывал первый

Так Вам нужно перекрытие по кол-ву лотов или по величине ТП?


Статистика спредов | ПАММ-корректировщик | Section Divine

אף אדם לא לבד - כולנו איש אחד בלב אחד

Share this post


Link to post
Share on other sites
sviter
10 минут назад, AntFX сказал:

Так Вам нужно перекрытие по кол-ву лотов или по величине ТП?

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

 

По логике если ордер считается в пунктах....сколько пунктов прошел, столько прибыль или убыток? Тоесть получается 0.1 * 50 ???

Edited by sviter

Share this post


Link to post
Share on other sites
sviter
23 минуты назад, AntFX сказал:

Так Вам нужно перекрытие по кол-ву лотов или по величине ТП?

Делаю я кароче такой своеобразный сеточник с мартингейлом и ТР, только (типа)мартингейл в пунктах между ордерами...
 

Share this post


Link to post
Share on other sites
AntFX
18 минут назад, sviter сказал:

По логике если ордер считается в пунктах....сколько пунктов прошел, столько прибыль или убыток? Тоесть получается 0.1 * 50 ???

Чтобы обеспечить "перекрытие" прошлого убытка новой прибылью, Вам нужно либо увеличить размер лота, либо увеличить ТП. Либо сделать и то и другое. Вот Вам и нужно определиться, увеличивать лот, или сокращать ТП, или и то и другое, и в какой пропорции. То есть фиксировать тот или иной параметр, и в зависимости от него уже вычислять второй.


Статистика спредов | ПАММ-корректировщик | Section Divine

אף אדם לא לבד - כולנו איש אחד בלב אחד

Share this post


Link to post
Share on other sites
sviter
1 минуту назад, AntFX сказал:

Чтобы обеспечить "перекрытие" прошлого убытка новой прибылью, Вам нужно либо увеличить размер лота, либо увеличить ТП. Либо сделать и то и другое. Вот Вам и нужно определиться, увеличивать лот, или сокращать ТП, или и то и другое, и в какой пропорции. То есть фиксировать тот или иной параметр, и в зависимости от него уже вычислять второй.

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

 

Приведу пример:

Оикрыл я ордер на 1.5000 с лотом в 0.1 и ТП в 100 и цена пошла не в мою сторону....а я указал что бы через 50 пунктов к примеру открылся второй ордер с 0.5 к примеру лотом, но уже с ТП в 10 пунктов.....таким образом прибыль я заберу и перекрою убыток.... так вот как вычислить эту к примеру этот второй ордер с 0.5??? но сделать это надо от указанных пунктов между ордерами, что бы второй ордер всегда перекрывал первый

Share this post


Link to post
Share on other sites
AntFX

Ну так в Вашем примере все просто - нужно, чтобы за 10 пп ордер лотом 0.5 покрыл убыток ордера 0.1, прошедшего 50 пп не в Вашу сторону (в этом примере ТП первого ордера не имеет значения). Тут все просто, берем убыток, пройденный первым ордером до открытия второго - это 50 * 1 (цена целого пункта 0.1 лота это 1 доллар, если пара EURUSD), соответственно Вы выбрали размер лота второго ордера 0.5 правильно, без учета того, что к моменту ТП второго ордера это будет уже не -50, а -40 (если только Вы не закрываете первый ордер в момент открытия второго), т.к. 5 *10 = 50. Если учесть, что на ТП второго ордера убыток первого будет уже не 50, а 40, то лот должен будет быть 40/10=0.4


Статистика спредов | ПАММ-корректировщик | Section Divine

אף אדם לא לבד - כולנו איש אחד בלב אחד

Share this post


Link to post
Share on other sites
sviter
6 минут назад, AntFX сказал:

Ну так в Вашем примере все просто - нужно, чтобы за 10 пп ордер лотом 0.5 покрыл убыток ордера 0.1, прошедшего 50 пп не в Вашу сторону (в этом примере ТП первого ордера не имеет значения). Тут все просто, берем убыток, пройденный первым ордером до открытия второго - это 50 * 1 (цена целого пункта 0.1 лота это 1 доллар, если пара EURUSD), соответственно Вы выбрали размер лота второго ордера 0.5 правильно, без учета того, что к моменту ТП второго ордера это будет уже не -50, а -40 (если только Вы не закрываете первый ордер в момент открытия второго), т.к. 5 *10 = 50. Если учесть, что на ТП второго ордера убыток первого будет уже не 50, а 40, то лот должен будет быть 40/10=0.4

0.5 это сумма лота которую я незнаю....она можкт быть разной... вот мне и нужна формула что бы ее вычислить....от 0.1 с 50 пунктами между ордерами

Share this post


Link to post
Share on other sites
AntFX
Только что, sviter сказал:

0.5 это сумма лота которую я незнаю....она можкт быть разной... вот мне и нужна формула что бы ее вычислить....от 0.1 с 50 пунктами между ордерами

Вам нужно знать либо размер ТП, либо коэффициент увеличения лота, задача с "двумя неизвестными" не имеет решения, пока Вы не фиксируете одно из них.


Статистика спредов | ПАММ-корректировщик | Section Divine

אף אדם לא לבד - כולנו איש אחד בלב אחד

Share this post


Link to post
Share on other sites
sviter
2 минуты назад, AntFX сказал:

Вам нужно знать либо размер ТП, либо коэффициент увеличения лота, задача с "двумя неизвестными" не имеет решения, пока Вы не фиксируете одно из них.

Я пока разбираюсь с увеличением лота....с ТП потом буду думать(задача второстепенная)

И мне нужен кофициент увеличения лота от количества шагов между ордерами, зная что первый ордер будет с лотом в 0.1....

 

Вот есть же скрипт для кофециент увеличения лота от баланса счета....

Пытаюсь замутить что то похожее..

Share this post


Link to post
Share on other sites
AntFX
3 минуты назад, sviter сказал:

Вот есть же скрипт для кофециент увеличения лота от баланса счета....

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

Edited by AntFX

Статистика спредов | ПАММ-корректировщик | Section Divine

אף אדם לא לבד - כולנו איש אחד בלב אחד

Share this post


Link to post
Share on other sites
sviter

бред-бред-бред!!! все что было написано раньше можно забыть!!!

смотрите!
делаю специфический сеточник с усреднением цены и мартингейлом!!!
открываестся первый ордер по цене 1.000 с лотом в 0.1 и ТП 100 пунктов
цена пошла не туда и через 100 пунктов по цене 1.100 открывается еще один ордер, но уже с 0.5 лотом и с ТП в 2 пункта...
как высчитать сумму в 108 пунктов между 2-мя ордерами?

Share this post


Link to post
Share on other sites
Ugar68
17 минут назад, sviter сказал:

бред-бред-бред!!! все что было написано раньше можно забыть!!!

смотрите!
делаю специфический сеточник с усреднением цены и мартингейлом!!!
открываестся первый ордер по цене 1.000 с лотом в 0.1 и ТП 100 пунктов
цена пошла не туда и через 100 пунктов по цене 1.100 открывается еще один ордер, но уже с 0.5 лотом и с ТП в 2 пункта...
как высчитать сумму в 108 пунктов между 2-мя ордерами?

Если у второго ордера тейк 2 пункта, какой смысл что то считать? Он закроется при малейшем шуме.

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


Пишу советники и индикаторы по вашим алгоритмам. Пишите на ugar68@bk.ru.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
sviter
13 минут назад, Ugar68 сказал:

Если у второго ордера тейк 2 пункта, какой смысл что то считать? Он закроется при малейшем шуме.

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

мне просто надо произвести расчет 108 пунктов от ордера до ордера! что бы ТП на втором ордере подтягивался к нему и выставлял значение в 2 пункта и закрывал эти 2 ордера!

Share this post


Link to post
Share on other sites
sviter

мне нужно, что бы ТП второго ордера подтягивался на 108 пунктов сам!! для этого и прошу формулу для высчитывания 108 пунктов между ордерами!

Share this post


Link to post
Share on other sites
Ugar68
1 час назад, sviter сказал:

открываестся первый ордер по цене 1.000 с лотом в 0.1 и ТП 100 пунктов
цена пошла не туда и через 100 пунктов по цене 1.100 открывается еще один ордер

 

мне нужно, что бы ТП второго ордера подтягивался на 108 пунктов сам!! для этого и прошу формулу для высчитывания 108 пунктов между ордерами!

В условии сказано что между ордерами 100 пунктов. Какая формула может из 100 сделать 108?


Пишу советники и индикаторы по вашим алгоритмам. Пишите на ugar68@bk.ru.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
sviter
2 часа назад, Ugar68 сказал:

В условии сказано что между ордерами 100 пунктов. Какая формула может из 100 сделать 108?

ой сорри! 98! в голове одно, а на словах другое)))) извиняюсь

Share this post


Link to post
Share on other sites
Ugar68

В идеале, если цена отодвинулась от ордера на 100 пунктов и открылся второй, то и расстояние между ними 100 пунктов.

В реальности, при открытии расстояние может отличаться. Посчитать можно так:  fabs(OOP1-OOP2)/_Point;

Здесь OOP1 - цена открытия первого ордера, OOP2 - второго.


Пишу советники и индикаторы по вашим алгоритмам. Пишите на ugar68@bk.ru.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
sviter
5 минут назад, Ugar68 сказал:

В идеале, если цена отодвинулась от ордера на 100 пунктов и открылся второй, то и расстояние между ними 100 пунктов.

В реальности, при открытии расстояние может отличаться. Посчитать можно так:  fabs(OOP1-OOP2)/_Point;

Здесь OOP1 - цена открытия первого ордера, OOP2 - второго.

OOP1 и OOP2 запоминать Функцией запоминания последней цены ?

Share this post


Link to post
Share on other sites
Ugar68

Можно выбрать первый ордер OOP1 =OrderOpenPrice(); Потом выбрать второй ордер OOP2 =OrderOpenPrice();


Пишу советники и индикаторы по вашим алгоритмам. Пишите на ugar68@bk.ru.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×