[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 340
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте.
Как узнать факт срабатывания SL или TP. Например, если ордер закрывается по
SL или TP, то выполнить то-то и то-то... Я что-то не нашел такой функции.
Стандартных функций нет, но можно добавить сигналы в окне терминал (sound, file, mail).
Если используете советник можно добавить и сигнал, и алерт, и .....
Ещё один вопросик есть. Если if (OrdersTotal()==0) это... если количество открытых ордеров равно нулю... то как будет...если количество открытых ЗА ДЕНЬ ордеров равно нулю.
Нет чего-нибудь типа OrdersDayTotal?
и что? мне в эксперте надо. подробнее
Ну как что
"Если используете советник можно добавить и сигнал, и алерт, и ....."
"..." Это может быть что угодно, вплоть до выключения ПК.
Ещё один вопросик есть. Если if (OrdersTotal()==0) это... если количество открытых ордеров равно нулю... то как будет...если количество открытых ЗА ДЕНЬ ордеров равно нулю.
Нет чего-нибудь типа OrdersDayTotal?
Допустим открыта покупка, тогда при сигнале продажи закрываем покупку, или открыта покупка, тогда при сигнале покупки докупаемся
OrderType()
См.справку
Справочник MQL4 - Торговые функции - OrderType
видимо с дде никто из профи не работает.
А может, кто знает, как с mamadu связаться? это автор статьи,
по которой я уже запарил весь интернет вопросами(безрезультатно). Dmitriy который.
Здравствуйте.
Как узнать факт срабатывания SL или TP. Например, если ордер закрывается по
SL или TP, то выполнить то-то и то-то... Я что-то не нашел такой функции.
Я пользуюсь вот такой схемой.
//Определяем чем завершилась прошлая сделка профитом или лосом
//------------------------------------------------------------------------------------------------------------------------------------------------
if (OrderSelect(Tic_Verh,SELECT_BY_TICKET)==true)
{
if (OrderComment()=="[sl]")_SL[0]=-1;
if (OrderComment()=="[tp]")_SL[0]=1;
}
if (OrderSelect(Tic_Niz,SELECT_BY_TICKET)==true)
{
if (OrderComment()=="[sl]")_SL[0]=-1;
if (OrderComment()=="[tp]")_SL[0]=1;
}
Красным цветом помечены переменные типа INT в которые записываются номера ТИКОВ при открытии позиции
Переменная _SL[0] объявлена как одномерный массив из одного элемента. то есть int _SL[1]
подскажите пожалуйста пишу советник не могу разобраться открываю ордер на бай в заданное время если цена отклоняется ниже на 10 пунктов должен открыться ордер на селл.ошибок нет при компилировании.
Первый ордер открывается на бай а при отклонении в низ не отрывается селл.И при условии если рынок идет вверх па 10 пунктов не запускается функция закрытия ордеров.
вот часть кода
.......................
.......................
bool opb1=true;
bool ops1=true;
int start()
{
int Cur_Hour=Hour(); // Серверное время в часах
double Time_Cls=9.25;
double Cur_Min=Minute();
double Cur_time=Cur_Hour + Cur_Min*0.01; // Текущее время
if (Cur_time>=Time_Cls)
{
if (opb1==true){
double bid =MarketInfo("EURUSD",MODE_BID);
double ask =MarketInfo("EURUSD",MODE_ASK);
double point =MarketInfo("EURUSD",MODE_POINT);
double bid1 =bid+50*Point;
double ask1=ask-50*Point;
double bid2=bid;
double ask2=ask-100*Point;
OrderSend(Symbol(),OP_BUY,0.1,Ask,50,Bid-400*Point,Bid+200*Point);
Alert (GetLastError());
opb1=false;}
if(MarketInfo("EURUSD",MODE_BID)>= bid1)
{
Close_All(0); //функция закрытия бай
return(0);
}
if(MarketInfo("EURUSD",MODE_ASK)<=ask1)
{
ask =MarketInfo("EURUSD",MODE_ASK); //
bid =MarketInfo("EURUSD",MODE_BID); //
point =MarketInfo("EURUSD",MODE_POINT);//
if (ops1==true){
OrderSend(Symbol(),OP_SELL,0.3,Bid,50,Ask+400*Point,Ask-200*Point);
Alert (GetLastError());
ops1=false;}
if(MarketInfo("EURUSD",MODE_ASK)<=ask2)
{
Close_All(1);// функция закрытия селл
Close_All(0);
return(0);
}
или может я неправильно задаю условие открытия?
подскажите пожалуйста пишу советник не могу разобраться открываю ордер на бай в заданное время если цена отклоняется ниже на 10 пунктов должен открыться ордер на селл.ошибок нет при компилировании.
Первый ордер открывается на бай а при отклонении в низ не отрывается селл.И при условии если рынок идет вверх па 10 пунктов не запускается функция закрытия ордеров.
вот часть кода
.......................
.......................
bool opb1=true;
bool ops1=true;
int start()
{
int Cur_Hour=Hour(); // Серверное время в часах
double Time_Cls=9.25;
double Cur_Min=Minute();
double Cur_time=Cur_Hour + Cur_Min*0.01; // Текущее время
if (Cur_time>=Time_Cls)
{
if (opb1==true){
double bid =MarketInfo("EURUSD",MODE_BID);
double ask =MarketInfo("EURUSD",MODE_ASK);
double point =MarketInfo("EURUSD",MODE_POINT);
double bid1 =bid+50*Point;
double ask1=ask-50*Point;
double bid2=bid;
double ask2=ask-100*Point;
OrderSend(Symbol(),OP_BUY,0.1,Ask,50,Bid-400*Point,Bid+200*Point);
Alert (GetLastError());
opb1=false;}
if(MarketInfo("EURUSD",MODE_BID)>= bid1)
{
Close_All(0); //функция закрытия бай
return(0);
}
if(MarketInfo("EURUSD",MODE_ASK)<=ask1)
{
ask =MarketInfo("EURUSD",MODE_ASK); //
bid =MarketInfo("EURUSD",MODE_BID); //
point =MarketInfo("EURUSD",MODE_POINT);//
if (ops1==true){
OrderSend(Symbol(),OP_SELL,0.3,Bid,50,Ask+400*Point,Ask-200*Point);
Alert (GetLastError());
ops1=false;}
if(MarketInfo("EURUSD",MODE_ASK)<=ask2)
{
Close_All(1);// функция закрытия селл
Close_All(0);
return(0);
}
или может я неправильно задаю условие открытия?