[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 828
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не совсем так - для Стоп-ордера цена открытия может быть, Например в случае Buy,
максимум предыдущего фрактала (=OpenPrice) + Спред
(при условии что Аск ниже фрактала на величину Stop_Level или более). Т.е. ордер выставляется не от Аск, а от какого-то "внешнего" условия.
Но в большей степени хотелось бы знать об учете Спреда в TakeProfit и StopLoss:
- В случае Buy:
OrderSend(Symbol(), OP_BUYSTOP, Lots, OpenPrice+Spread, Slippage, OpenPrice-StopLoss, OpenPrice+TakeProfit+Spread, ...)
- Sell:
- Верно или я чего-то не учел?
А разница промежду Аск и Бид и есть спред... От того и пляшем-с...
Чтобы писать сообщение надо обязательно нажать "ответить"? Как добавить сообщение к теме не нажимая "ответить"?
Внизу окошко редактора и кнопка "Добавить комментарий"
Читаю, стараюсь понять, натыкаюсь на сокращения и непонятные слова. ТЗ, ТФ, флеты и т.п.
Есть, что нибудь навроде словаря основных сокращений, мало понятных слов?
Один мудрец сказал: "Дайте точное определение каждому слову, и вы избавите человечество от половины заблуждений!"
По текущим ценам, не отложеный ордер, так:
Buy:
Sell:
Для отложенных -- зависит от программиста, по каким ценам ведёт счёт.
В любом случае StopLoss и TakeProfit считаются от одной цены, а OpenPrice отличается от неё(цены) на спред.
Здравствуйте! Я в MQL4 и вообще в программировании новичок, поэтому у меня такой вопрос:
Написал код, который к определенному времени, допустим 21.15, закрывает все открытые позиции с 0 по 3 в списке:
if((TimeHour(TimeCurrent()) == MyHour)&&(TimeMinute(TimeCurrent())== MyMinute))
{
for(int j=0;j<4;j++)
{
if((OrderSelect(j,SELECT_BY_POS,MODE_TRADES)==true))
{
Print("Order:",OrderTicket());
OrderClose(OrderTicket(),MyLots,Bid,5,color3);
}
else
Print("OrderSelect() vernul oshibku - ",GetLastError());
}
На тестере происходит следующее: ордера 0 и 1 закрываются в указанное время, а 2 и 3 - в это же время, но через сутки.
Также написан участок кода, который модифицирует стоп-лосс у всех ордеров с 0 по 3 в списке:
if(Diff2 <= 0.0012)
{
int pos1;
int total = OrdersTotal();
for(pos1=0; pos<total; pos1++)
{
if(OrderSelect(pos1,SELECT_BY_POS,MODE_TRADES)==true)
{
Print("Order1:",OrderTicket());
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),Ask-Point*TakeProfit,0,color3);
}
else
Print("OrderSelect() vernul oshibku - ",GetLastError());
}
}
На тестере происходит следующее: тестер во вкладке "результат" пишет modify всех ордеров, затем виснет и в журнал постоянно выводится
сообщение "OrderSelect() vernul oshibku - 0"
Пожалуйста, подскажите что здесь не так или с чем такое поведение может быть связано???Заранее спасибо за ответ.
chief2000:
Хочу уточнить один вопрос - речь об открытии Стоп-ордера. ...Всем Большое Спасибо!
>>Написал код, который к определенному времени, допустим 21.15, закрывает все открытые позиции с 0 по 3 в списке:
>>На тестере происходит следующее: ордера 0 и 1 закрываются в указанное время, а 2 и 3 - в это же время, но через сутки.
OrderClose() закрывает только открытые ордера. Для удаления отложенных -- OrderDelete(). Наверное, два других ордера отложенные??? Через сутки они срабатываю(открываются) и потом закрываются OrderClose() ?
>>Также написан участок кода,`который модифицирует стоп-лосс у всех ордеров с 0 по 3
for(pos1=0; pos<total; pos1++)
Для "pos1" в условии цикла пропустил единицу:
for(pos1=0; pos1<total; pos1++)