Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1133
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
prıvet .podskajıte pojalusta pochemu na demo schete ne mogu otkrıt zdelkı
trade is disablet .oshıbka
Грехов нет, на что ругается.
Какие ошибки компилятора
Что то связано с тем что функция должна быть глобальной и ожидание запятых в том месте где нет смысла их ставить! Например у разделителя между информацией о брокере и о торгуемой паре
Подскажите, чайнику. Как открыть реальный счёт ?
Что значит "никакая"? По тикету сортируйте - всегда будет порядок и с документацией никаких противоречий, там про сортировку по порядковому номеру написано, а не по тикету, это разные вещи.
Имеем в один момент времени такой список ордеров (по тикетам)
- Buy #1
- Buy #2
- BuyStop #3
- Sell #4
В списке порядок тикетов: #1,#2,#3,#4После срабатывания BuyStop #3 каков порядок тикетов будет в списке?
Разве не #1,#2,#4,#3 ?
Так что и тикеты не гарантируют упорядоченности.
Еще столкнулся с одной проблемкой! Не судите строго, язык изучаю недели 2-3, может просто туплю!
Задача на советнике, уведомить трейдера через почту каждые 4 часа, если свободная маржа на счете привесила определенное значение.
В тему сообщения нужно написать название брокера и торгуемую пара, а в тело сообщения "Опасность! Просадка привысила допустимое значение. Примите необходимые меры"
Компилятор ругается, с английском не дружу и не могу понять в чем ошибка!
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 должно быть проверено??????????????????????????????
Уважаемые программисты прошу помочь новичку в этом деле.
советник последовательно через определенное время открывает ордера как на покупку так на продажу. Мне нужно чтоб он после открытия последнего ордера модифицировал все предыдущие,(ну если уже конкретно,то чтоб у всех предыдущих закрытие осуществлялось по тейкпрофиту последнего. Т.е. если последний бай а предыдущий селл, то у предыдущего стоп лос ставится на уровень тейкпрофита последнего,
если предыдущий бай то его тейпрофит ставится на уровень последнего тейкпрофита. ну и т.д. Смысл в том, что при наступлении тейкпрофита последнего ордера должны закрыться все ордера.).
Надеюсь объяснил понятно, хотя трудно понимаю как это реализовать. Заранее спасибо.
Я понимаю что можно перебрать все открытые ордера и модифицировать но как пропустить последний?