Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1133

 
trade is disablet .oshıbka
 
--danger--:

prıvet .podskajıte pojalusta pochemu na demo schete ne mogu otkrıt zdelkı

--danger--:
trade is disablet .oshıbka
Knopka avtotorgovly ne najata? Pokajite nomer osibki, v jurnale dolzen byti. 
 
Alekseu Fedotov:

Грехов нет, на что ругается.

Какие ошибки компилятора 

 

 

Что то связано с тем что функция должна быть глобальной и ожидание запятых в том месте где нет смысла их ставить! Например у разделителя между  информацией о брокере и о торгуемой паре 

 
GoldenGod:
Подскажите, чайнику. Как открыть реальный счёт ?
Зависит от брокера, заходешь к нему на сайт и ищешь кнопку "Открыть реальный счет" или какуюто подобную. Или в личном кабинете брокера "Создать новый счет"
 
Vitalie Postolache:
Что значит "никакая"? По тикету сортируйте - всегда будет порядок и с документацией никаких противоречий, там про сортировку по порядковому номеру написано, а не по тикету, это разные вещи.
Если задаться вопросом:
Имеем в один момент времени такой список ордеров (по тикетам)
  1. Buy #1
  2. Buy #2
  3. BuyStop #3
  4. Sell #4
В списке порядок тикетов: #1,#2,#3,#4

После срабатывания BuyStop #3 каков порядок тикетов будет в списке?

Разве не #1,#2,#4,#3 ?

Так что и тикеты не гарантируют упорядоченности.
 
Anton Sokolov:

Еще столкнулся с одной проблемкой! Не судите строго, язык изучаю недели 2-3, может просто туплю!

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

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

Компилятор ругается, с английском не дружу и не могу понять в чем ошибка!

input  double MessageMail     = 50.0;
double Sag;

void OnTick()
  {
   Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1);  //находим процент просадки и округляем до 1 знака
    if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3)                                       //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
     {
     Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ",  MessageMail, " % ");                 //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит                          
     }
  }


 PS: Может в целом есть проще решение для такой задачи, но я пока ее вижу только так) 

//+------------------------------------------------------------------+
//|                                               exTestSendMail.mq4 |
//|              Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link      "https://login.mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property strict

input  double MessageMail     = 50.0;
//---
double Sag=0;
string MailSubject="";
datetime PrevTime=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   MailSubject="Mail from EA "+MQLInfoString(MQL_PROGRAM_NAME);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   //--- Находим процент просадки и округляем до 1 знака
   Sag=NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_MARGIN_FREE)/AccountInfoDouble(ACCOUNT_BALANCE)),1);
   //--- Если открыт новый бар на H4
   if(iTime(Symbol(),PERIOD_H4,0) !=PrevTime) {
      //--- если просадка больше заданного
      if(Sag>MessageMail) {
         Alert(Symbol(), ": Просадка = ", DoubleToString(Sag,1), " % ", " > ",  MessageMail, " % ");              //вывести предупреждение в терминале
         string MailText=AccountInfoString(ACCOUNT_COMPANY)+" > Опасность! Просадка ("+DoubleToString(Sag,1)+"%) привысила допустимое значение. Примите необходимые меры.";
         SendMail(MailSubject,MailText);
         }
      PrevTime=iTime(Symbol(),PERIOD_H4,0);
      }
  }
//+------------------------------------------------------------------+
Вообще, лучше в таймере делать проверки такого рода.
 

Спасибо! Настроил отправку писем!

 

как исправить возвращаемое значение '' OrderClose должно быть проверено??????????????????????????????

 
Vielleicht xamp neu starten
 

Уважаемые программисты прошу помочь новичку в этом деле.

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

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

Надеюсь объяснил понятно, хотя трудно понимаю как это реализовать. Заранее спасибо.

Я‌ понимаю что можно перебрать  все открытые ордера и модифицировать но как пропустить последний?

Причина обращения: