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

 
Спасибо. Буду изучать.
 

Здравствуйте уважаемые Гуру МТ4.

Подскажите пожалуйста, как обойти ситуацию, когда OrderSend возвращает -1, но ордер открывает?

 
ftrw:

Подскажите пожалуйста, как обойти ситуацию, когда OrderSend возвращает -1, но ордер открывает?

Попробуйте пользовать эту ф-ию - Функция OpenPosition() для online.
 
artmedia70:
Для позиции, открытой по цене 1500, тейк в 1570 будет нормальным (если не учитывать СтопЛевел), а вот для позиции, открытой по цене 1600, тейк в 1570 вызовет ошибку 130 - неправильные стопы. Ведь тейк не может быть ниже цены открытия для Buy. Это уже СтопЛосс.
Для двух позиций вы определили вашу точку безубытка, а для трёх-четырёх-пяти?
Вы бы сначала определились с формулой безубытка по однонаправленным позициям, а уж потом и логику можно составить.

я согласен, что нужно делать СтопТЛосс у ордера с ценой 1600

у открытия ордера функция начинается:

ticketBuy = OpenPendingOrderBuy(0, iLots, Ask, slip, Bid, 0, 0, EAName + "-" + NumOfTradesBuy, MagicNumber, 0, Lime)
у всех остальных ордеров будет такое же открытие
 
Vinin:
,
Все зависит от того, когда мы устанавливаем или меняем тейкпрофит. Считается он от текущей цены.

считаем между ордерами: ((Ask - OrderBuy2) - swop - ...) + ((Ask - OrderBuy1) - swop - ...) = Profit получаем количество пунктов которые можем потерять, так как они в плюсе

((Ask - OrderBuy3) -/+ swop -/+ ...) + ((Ask - OrderBuy2) - swop - ...) + ((Ask - OrderBuy1) - swop - ...) = Profit

Ask = 1620; Ask = 1760; OrderBuy3 = 1700

((1620 - 1500) - 4 - 6) +( (1620 - 1600) - 4 - 6) = 120; для 3 -х и более добавляем ((1760 - 1700) - 4 - 6) + ((1760 - 1500) - 4 - 6) +( (1760 - 1600) -4 - 6) = 450

LotOrderBuy1 = 0.01; LotsS = 0.01

LotOrderBuy2 = 0.02; LotsS = 0.03

LotOrderBuy3 = 0.03 ; LotsS = 0.06

Общий лот LotsS = LotOrderBuy1 + LotOrderBuy2 = 0.03; для 3 -х и более добавляем

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

Чтобы получить StopProfit

Ask - StopProfit * Point = LineTakeProfit для OrderBuy1 и LineStopLoss для OrderBuy2

LotsS = 0.06

как то вот так я это вижу

 
Roman.:
Попробуйте пользовать эту ф-ию - Функция OpenPosition() для online.

Спасибо огромное. Идея понятна, буду пробовать.
 
trol222:

Может кто прояснить такой момент. Вот ссылка https://www.mql5.com/ru/code/8102. Скрипт (советник прикрепил) . Там советник скидывает в файл котировки в цсв. почему при расчете чего либо в этом же файле экселя (ЦСВ) при егозакрытии (естественно пишет куда сохранить - я жму в этот же файл (вместо него)) а при повторном открытии терминала и файла все расчеты исчезают???

Ну для начала это CSV, не самый лучший формат для сохранения расчетов, во вторых скрипт этот файл перезаписывает.
 
PapaYozh:



Заработала!!!! =))))) правда не так, как надо, но сам факт меня необычайно радует =))) мое глубочайшее спасибо =))))
 
belck:

считаем между ордерами: ((Ask - OrderBuy2) - swop - ...) + ((Ask - OrderBuy1) - swop - ...) = Profit получаем количество пунктов которые можем потерять, так как они в плюсе

((Ask - OrderBuy3) -/+ swop -/+ ...) + ((Ask - OrderBuy2) - swop - ...) + ((Ask - OrderBuy1) - swop - ...) = Profit

Ask = 1620; Ask = 1760; OrderBuy3 = 1700

((1620 - 1500) - 4 - 6) +( (1620 - 1600) - 4 - 6) = 120; для 3 -х и более добавляем ((1760 - 1700) - 4 - 6) + ((1760 - 1500) - 4 - 6) +( (1760 - 1600) -4 - 6) = 450

LotOrderBuy1 = 0.01; LotsS = 0.01

LotOrderBuy2 = 0.02; LotsS = 0.03

LotOrderBuy3 = 0.03 ; LotsS = 0.06

Общий лот LotsS = LotOrderBuy1 + LotOrderBuy2 = 0.03; для 3 -х и более добавляем

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

Чтобы получить StopProfit

Ask - StopProfit * Point = LineTakeProfit для OrderBuy1 и LineStopLoss для OrderBuy2

LotsS = 0.06

как то вот так я это вижу

Встречал как-то ответ на ваш вопрос. Даже найду его сейчас... Вот:


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


формула связи: Лот=Деньги/(Стоплос*Тик)
Деньги - заработанное/потерянное
Стоплос - в пунктах брокера
Тик - MarketInfo(Symbol(), MODE_TICKVALUE)
Отсюда крутите как хотите:
Стоплос=Деньги / (Лот*Тик)
Деньги=Лот*Стоплос*Тик

Ещё вот это можно поюзать:

Расчёт уровня БУ для множества по одному инструменту:

сумма лотов = суммарная позиция (СП)

стоимость тика СП = СТ

профит СП = ПСП

Формула расчёта довольно проста:

КП = ПСП / (СТ * СП)

В которой узнаём количество пипс (КП) до уровня БУ относительно текущей цены (ТЦ) символа.

И подставив КП в формулу БУ = ТЦ - КП * Point получаем уровень цены БУ.

В зависимости от направления СП выбирается прибавлять либо отнимать от ТЦ.
 

Терминал не видит историю



240
vitali_yv 04.10.2011 09:47
Доброго дня. Столкунулся сегодня с непонятной проблемой - есть два компа на Win 7. На одном компе стоит терминал с котировками от 2007 года, всё прекрасно работает, подключения к серверу нет. Переношу этот терминал полностью на другой компьютер - не подключаюсь к серверу, никаких манипуляций не произвожу - мало того, что терминал запускается 2-3 минуты, так ещё и история начинается с 2011 года, файлы HST - только для чтения стоят. Посоветуйте плз куда копать.