Выбирает в истории сделку для дальнейших обращений к ней через соответствующие функции. Возвращает true при успешном завершении функции. Возвращает false при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError(). Не следует путать между собой ордера, сделки и позиции. Каждая сделка...
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
Сергей: А как нарисовать линию на индикаторе, напр iAO,iDem, по 2 точкам? и получать значение линии в точке X ?
Каждый индикатор рисуется или в главном окне или в подокне. Значит шаг №1: узнать номер подокна, в котором нарисован индикатор. Смотрите в сторону Операции с графиками.
Шаг 2: когда есть номер подокна нарисовать линию просто. Смотрите справку OBJ_TREND, и параметры функции "TrendCreate"
//+------------------------------------------------------------------+ //| Создает линию тренда по заданным координатам | //+------------------------------------------------------------------+ bool TrendCreate(constlong chart_ID=0, // ID графика conststring name="TrendLine", // имя линии constint sub_window=0, // номер подокна datetime time1=0, // время первой точки double price1=0, // цена первой точки datetime time2=0, // время второй точки double price2=0, // цена второй точки constcolor clr=clrRed, // цвет линии constENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии constint width=1, // толщина линии constbool back=false, // на заднем плане constbool selection=true, // выделить для перемещений constbool ray_left=false, // продолжение линии влево constbool ray_right=false, // продолжение линии вправо constbool hidden=true, // скрыт в списке объектов constlong z_order=0) // приоритет на нажатие мышью
{
Прикрепите строки журнала, которые показывают модификацию (строки не жалейте - возьмите + 3 сверху и снизу)
Добавлено.
И покажите OnInit().
Ситуация: удаляю вручную Т/Р, советник снова ставит.
intOnInit()
{
if(!MQLInfoInteger(MQL_TRADE_ALLOWED))
{
//Alert("Automated trading is forbidden in the program settings for ",__FILE__);return(false);
}
входить=входить_;
handle_iCustom=iATR(Symbol(),ATRtimeframe,ATRper);
if(handle_iCustom==INVALID_HANDLE)
{
//--- tell about the failure and output the error code PrintFormat("Failed to create handle of the iCustom indicator for the symbol %s/%s, error code %d",
m_symbol.Name(),
EnumToString(Period()),
GetLastError());
//--- the indicator is stopped early return(INIT_FAILED);
}
//
handle_iCustom_2=iATR(Symbol(),ATRtimeframeStep,ATRperStep);
if(handle_iCustom_2==INVALID_HANDLE)
{
//--- tell about the failure and output the error code PrintFormat("Failed to create handle of the iCustom indicator for the symbol %s/%s, error code %d",
m_symbol.Name(),
EnumToString(Period()),
GetLastError());
//--- the indicator is stopped early return(INIT_FAILED);
}
//
handle_iMA=iMA(Symbol(),Time_Frame_MA,Period_MA,0,MODE_SMA,PRICE_CLOSE);
//--- if the handle is not created if(handle_iMA==INVALID_HANDLE)
{
//--- tell about the failure and output the error code PrintFormat("Failed to create handle of the iMA indicator for the symbol %s/%s, error code %d",
Symbol(),
EnumToString(Period()),
GetLastError());
//--- the indicator is stopped early return(INIT_FAILED);
}
m_hline_name_buy=Symbol()+" "+m_hline_name_buy;
// m_hline_name_sell=Symbol()+" "+m_hline_name_sell;
HLineCreate(0,m_hline_name_buy,0,0.0,clrLime,2);
//---//---if(InpLot<=0.0)
{
Print("The \"Lot\" can't be smaller or equal to zero");
return(INIT_PARAMETERS_INCORRECT);
}
//---if(!m_symbol.Name(Symbol())) // sets symbol namereturn(INIT_FAILED);
RefreshRates();
string err_text="";
if(!CheckVolumeValue(InpLot,err_text))
{
Print(err_text);
return(INIT_PARAMETERS_INCORRECT);
}
//---
m_trade.SetExpertMagicNumber(m_magic);
//---if(IsFillingTypeAllowed(SYMBOL_FILLING_FOK))
m_trade.SetTypeFilling(ORDER_FILLING_FOK);
elseif(IsFillingTypeAllowed(SYMBOL_FILLING_IOC))
m_trade.SetTypeFilling(ORDER_FILLING_IOC);
else
m_trade.SetTypeFilling(ORDER_FILLING_RETURN);
//---
m_trade.SetDeviationInPoints(m_slippage);
//--- tuning for 3 or 5 digitsint digits_adjust=1;
if(m_symbol.Digits()==3 || m_symbol.Digits()==5)
digits_adjust=10;
m_adjusted_point=m_symbol.Point()*digits_adjust;
ExtZeroLevel=InpZeroLevel*m_adjusted_point;
ExtTrailingStop=InpTrailingStop*m_adjusted_point;
ExtTrailingStep=InpTrailingStep*m_adjusted_point;
//-
ExtTakeProfit=TakeProfit*m_adjusted_point;
ExtSL=StopLoss*m_adjusted_point;
ExtStep=InpStep*m_symbol.Point();
//---return(INIT_SUCCEEDED);
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
А как выбрать сделку, входящую в эту позицию
Спасибо, сделок несколько, поэтому решено использовать HistoryDealGetTicket().
Закомментировала всё, скажите, пожалуйста, где я что не так понимаю. Где ошибаюсь?
Спасибо, сделок несколько, поэтому решено использовать HistoryDealGetTicket().
Закомментировала всё, скажите, пожалуйста, где я что не так понимаю. Где ошибаюсь?
Я был очень неправ. В спешке дал неправильную ссылку. Думал об одном а выбрал совсем не то что надо.
Вот правильная ссылка.
Я был очень неправ. В спешке дал неправильную ссылку. Думал об одном а выбрал совсем не то что надо.
Вот правильная ссылка.
Спасибо.
А как нарисовать линию на индикаторе, напр iAO,iDem, по 2 точкам? и получать значение линии в точке X ?
Каждый индикатор рисуется или в главном окне или в подокне. Значит шаг №1: узнать номер подокна, в котором нарисован индикатор. Смотрите в сторону Операции с графиками.
Шаг 2: когда есть номер подокна нарисовать линию просто. Смотрите справку OBJ_TREND, и параметры функции "TrendCreate"
Либо просто iHighest() - в последних билдах уже есть.
О, смотрю, уже и в хелп наконец-то добавили эти новые-старые функции.
Без сомнений, советник прикреплённый к si модифицирует vtbr. Ставит T/P позиции по котировкам своего инструмента "si"
Если прикрепить советник к vtbr, то si он не модифицирует, работает только на своём инструменте
Хоть какое нибудь объяснение этому есть?
Модификации в коде нет, кроме этой:
Без сомнений, советник прикреплённый к si модифицирует vtbr
Если прикрепить советник к vtbr то si он не модифицирует, работает только на своём инструменте
Хоть какое нибудь объяснение этому есть?
Модификации в коде нет, кроме этой:
Прикрепите строки журнала, которые показывают модификацию (строки не жалейте - возьмите + 3 сверху и снизу)
Добавлено.
И покажите OnInit().
Прикрепите строки журнала, которые показывают модификацию (строки не жалейте - возьмите + 3 сверху и снизу)
Добавлено.
И покажите OnInit().
Ситуация: удаляю вручную Т/Р, советник снова ставит.