[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1100

 
kolyango:

СтопЛосс и ТейкПрофит уже установлены! Если установленный СтопЛосс меньше цены открытия ордера, то нужно только переставить СтопЛосс выше цены открытия на 50п.(вбезубыток), если настоящая цена больше или равна 80 п. от цены откр. ордера. И не надо постоянно переставлять СтопЛосс и ТейкПрофит!!!

Колян, утомляешь своим нежеланием думать.
 
DhP:

Колян, утомляешь своим нежеланием думать.

Да я недавно начал изучать MQL4, поэтому многого не знаю...
 

У меня вот какой вопрос. Сделано так: на H1 графике каждый тик приходит после полного формирования нового бара, т.е. 1 раз в час. Торговые приказы выглядят так:

На покупку:


OrderSend(Symbol(),OP_BUY,LOT,Ask,slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",3,Green); // Открытие BUY
Alert (GetLastError()); // Выводит сообщение об ошибке

На продажу:


OrderSend(Symbol(),OP_SELL,LOT,Bid,slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",3,Red); // Открытие SELL
Alert (GetLastError()); // Выводит сообщение об ошибке

И я заметил, что иногда выходит ошибка 129 и тогда не все торговые приказы исполняются. Я думаю что дело в кол-ве знаков после десятичной. Думаю, что надо добавить Digits. А вот куда именно? Или как всё-таки правильней сформировать торговый приказ, чтобы он всегда исполнялся, даже если советник будет запускаться 1 раз в день? Нужно ли добавить функцию:
RefreshRates(); // Обновим данные

перед торговым приказом? Примерно так:

RefreshRates(); // Обновим данные

OrderSend(Symbol(),OP_BUY,LOT,NormalizeDouble(Ask,Digits),slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",3,Green); // Открытие BUY
Alert (GetLastError()); // Выводит сообщение об ошибке

Как всё-таки сделать правильнее и чтобы всегда безукоризненно исполнялось при любом таймфрейме?

 

Как написать такое условие? Если настоящая цена >= OrderOpenPrice() на 60 п. (Если настоящая цена больше или равна цены откр. ордера на 60п.)

Так правильно будет?

if ((NormalizeDouble(Ask,Digits))>=(OrderOpenPrice()+Dist*Point))

 
kolyango:

Как написать такое условие? Если настоящая цена >= OrderOpenPrice() на 60 п. (Если настоящая цена больше или равна цены откр. ордера на 60п.)

Так правильно будет?

if ((NormalizeDouble(Ask,Digits))>=(OrderOpenPrice()+Dist*Point))



if ( Ask > (OrderOpenPrice()+(-0.5+Dist)*Point) )



 
kolyango:

Как написать такое условие? Если настоящая цена >= OrderOpenPrice() на 60 п. (Если настоящая цена больше или равна цены откр. ордера на 60п.)

Так правильно будет?

if ((NormalizeDouble(Ask,Digits))>=(OrderOpenPrice()+Dist*Point))

double pa=MarketInfo(Symbol(),MODE_ASK);
int    pt=MarketInfo(Symbol(),MODE_POINT);
int    dg=MarketInfo(Symbol(),MODE_DIGITS);

if (NormalizeDouble(pa-OrderOpenPrice()+60*pt,dg)>=0) {    // если Ask больше либо равен цене открытия выбранного ордера + 60 пунктов
    // ... код, обрабатывающий истинностть выражения оператора if ...
   }
 
artmedia70:



Артем, есть вопросы, на которые не стоит отвечать.

Кто-то и подумать должен прежде чем вопрос задавать.

С Рождеством!!!

 
Vinin:


Артем, есть вопросы, на которые не стоит отвечать.

Кто-то и подумать должен прежде чем вопрос задавать.

С Рождеством!!!

Привет, дружище!!! Спасибо, тебя тоже! :))))
Пусть это будет Рождественским Чудом кому-то... :)
 
уважаемые знатоки MQL4
Помогите прописать простенький индикатор.

1) Индикатор Гэп наверх


если Верхняя Цена вчера меньше Меньшей Цены сегодня, тогда идикатор вызывает сегодняшнюю Цену Открытия.
если условие не выполненно, тогда идикатор остовляет предущее значение.

2) Индикатор Гэп вниз

если Верхняя Цена сегодня меньше Верхней Цены вчера, тогда идикатор вызывает сегодняшнюю Цену Открытия.
если условие не выполненно, тогда идикатор остовляет предущее значение.

3)Индикатор локального максимума и минимума

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

На метастоке понятно If((Ref(H,-1) >Ref(H,0)) AND (Ref(H,-2) < Ref(H,-1) ), Ref( H,-1),PREV); а вот в MQL4 совсем новичок.

заранее благодарю за помощь

 
Ошибка 4109 торговля не разрешена. Как исправить?
Причина обращения: