Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 139

 

Гоняю советник в тестере. При модификации ордера BUYSTOP выдаёт ошибку:

Отчего не пойму. Цена на которую предлагается передвинуться ордеру на 40 больше цены Ask, StopLevel =30. Цена нормализована, что ещё надо???

 
khorosh:

Гоняю советник в тестере. При модификации ордера BUYSTOP выдаёт ошибку:

Отчего не пойму. Цена на которую предлагается передвинуться ордеру на 40 больше цены Ask, StopLevel =30. Цена нормализована, что ещё надо???

Встречал такое у одного брокера - попробуйте вместо 10 ставить выше на 11 пунктов
 
Лауреат:
подскажите пожалуйста как сделать функцию задания нужного количества ордеров ! например что б открывалось в заданное нами кол-во ордеров не более . в mql4
 
Konstantin Erin:
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("Открыто нужное количество ордеров"); если это использовать то открывается несколько подряд идущих ордеров ! а не ордеров если есть следующий сигнал на сделку вот как сделать так что бы открывал нужное количество ордеров если есть следующие сигналы на сделку после первого открытого ордера ! ?
 

а чего не кто не помогает ! пожалуйста .

 
Лауреат:
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("Открыто нужное количество ордеров"); если это использовать то открывается несколько подряд идущих ордеров ! а не ордеров если есть следующий сигнал на сделку вот как сделать так что бы открывал нужное количество ордеров если есть следующие сигналы на сделку после первого открытого ордера ! ?
enum Цвет   // Цвет флага
{
  Красный,
  Зеленый
};

Цвет Флаг=Красный;

void start()
{
   if(!Сигнал())Флаг=Зеленый;

   if(Сигнал()>0 && Флаг==Зеленый)
   {
      OrderSend(Покупка...);
      Флаг=Красный;
   }

   if(Сигнал()<0 && Флаг==Зеленый)
   {
      OrderSend(Продажа...);
      Флаг=Красный;
   }
}

int Сигнал()  // Сигналы покупки и продажи
{
   return ЧтоНадо;
}
Можно короче строк на 5, но лень думать...
 

ебята подскажите где найти или погомогите исправить трэйлинг стоп который работает по такой логике:

открылся например ордер на BUY с ТР = 100 и SL = 200, и когда цена прошла на BUY и прошла 50 пунктов, то SL стал по цене открытия, а ТР отодвинулся на 50 пунктов и так постоянно????

void TrailingPositions(int otype) 
{

  int cnt = OrdersTotal();

int lMinProfit    = 0;   // Мин. кол-во пунктов

int lTrailingStop = 40;   // Уровень выставления трала (сколько пунктов скакнет от предыдущего расстояния SL)

int lTrailingStep = 20;   // Уровень трала (пункты через которые он сработает)

  for (int i=0; i<cnt; i++) 
  {
        if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
        if (OrderSymbol() != Symbol()) continue;                

        if (OrderType() == OP_BUY && otype == OP_BUY) {
        if (Bid-OrderOpenPrice() > lMinProfit*Point) {
                if (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point) {
                if(OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point, TP + lTrailingStop * Point, 0, Blue))
                Print("Работает трейлинг");
                }
        }
        }

        if (OrderType() == OP_SELL && otype == OP_SELL) {
        if (OrderOpenPrice()-Ask > lMinProfit*Point) {
                if (OrderStopLoss() > Ask+(lTrailingStop+lTrailingStep-1)*Point || OrderStopLoss() == 0) {
                if(OrderModify(OrderTicket(), OrderOpenPrice(), Ask+lTrailingStop*Point, TP - lTrailingStop * Point, 0, Red))
                Print("Работает трейлинг");
                }
        }
        }
 
LRA:
Можно короче строк на 5, но лень думать...
хорошая идея надо будет попробовать . спасибо . однако будет ли она работать с функцие онтикет void OnTick() ?
 
Здравствуйте товарищи! Помогите пожалуйста с установкой объекта "кнопка", мне нужно разместить код в советник, так что бы непосредственно на графике кнопка в нажатом или не нажатом состоянии возвращала значение bool. Заранее благодарю!
 
Arseniy Barudkin:
Здравствуйте товарищи! Помогите пожалуйста с установкой объекта "кнопка", мне нужно разместить код в советник, так что бы непосредственно на графике кнопка в нажатом или не нажатом состоянии возвращала значение bool. Заранее благодарю!
ObjectGetInteger(ChartId(),"имя кнопки",OBJPROP_STATE)

вот