Забыл добавить - при этом ордера превосходно закрываются.
а галочка Arrows on the chart стоит?
Re: а галочка Arrows on the chart стоит?
Как я понимаю, галочка "Arrows on the chart" имеет отношение только к System tester. Естественно, при тестировании при вкл. галочке - символы рисуются, при выкл. - не рисуются.
При работе эксперта на демо-счете независимо от выставленного "Arrows on the chart" символы рисуются только при открытии ордера:
SetOrder(OP_SELL,Lots,Bid,FactorOfSymbol*Slippage,0,0,BLUE);
при закрытии ордера:
CloseOrder(Ord(Cnt,VAL_TICKET),Ord(Cnt,VAL_LOTS),Ask,FactorOfSymbol*Slippage,YELLOW);
никаких символов не появляется.
Как я понимаю, галочка "Arrows on the chart" имеет отношение только к System tester. Естественно, при тестировании при вкл. галочке - символы рисуются, при выкл. - не рисуются.
При работе эксперта на демо-счете независимо от выставленного "Arrows on the chart" символы рисуются только при открытии ордера:
SetOrder(OP_SELL,Lots,Bid,FactorOfSymbol*Slippage,0,0,BLUE);
при закрытии ордера:
CloseOrder(Ord(Cnt,VAL_TICKET),Ord(Cnt,VAL_LOTS),Ask,FactorOfSymbol*Slippage,YELLOW);
никаких символов не появляется.
Привожу исходник простейшего эксперта, рисующего символы на графике только при открытии ордера, а при закрытии - нет
Эксперт открывает ордер buy и через минуту закрывает.
Эксперт открывает ордер buy и через минуту закрывает.
/*[[
Name :=
Author :=
Notes :=
Update on every tick := Yes
Link :=
Lots := 0.1
Stop Loss := 0
Take Profit := 0
Trailing Stop := 0
]]*/
Vars: Cnt(0),Slippage(100);
Defines: AdvisorOpenTrades(0);
If FreeMargin<100 Then Exit;
AdvisorOpenTrades=0;
For Cnt=1 To TotalTrades
{If Ord(Cnt,VAL_SYMBOL)=Symbol Then
{AdvisorOpenTrades=1;
};
};
If AdvisorOpenTrades<1 Then
{SetOrder(OP_BUY,Lots,Ask,Slippage,0,0,RED);
Exit;
};
For Cnt=1 To TotalTrades
{If Ord(Cnt,VAL_SYMBOL)=Symbol Then
{If (CurTime-Ord(Cnt,VAL_OPENTIME))/60>=1 Then
{CloseOrder(Ord(Cnt,VAL_TICKET),Ord(Cnt,VAL_LOTS),Bid,Slippage,YELLOW);
Exit;
};
};
};
Красные символы (RED) рисуются исправно, а желтых (YELLOW) вообще не видно. В чем моя ошибка?
Возможная причина ошибки!!!
Просьба обратить внимание разработчиков.
Смотрим в MetaQuotes Language Dictionary Syntax функции:
CloseOrder(order,lots,price,slippage,color); - 5 параметров
А теперь смотрим в MetaQuotes Language Dictionary Example функции:
Просьба обратить внимание разработчиков.
Смотрим в MetaQuotes Language Dictionary Syntax функции:
CloseOrder(order,lots,price,slippage,color); - 5 параметров
А теперь смотрим в MetaQuotes Language Dictionary Example функции:
if iRSI(14,0) > 75 then
begin
CloseOrder(OrderValue(1,VAL_ORDER),Ask,3,Red); - 4 параметра
exit;
end;
Компилятор MQL выдает ошибку при 4 параметрах.
Вопросы разработчикам:
- сколько изначально было параметров у CloseOrder?
- если этих параметров вначале было 4, возможно, остались баги в компиляторе?
ошибка в Dictionary, исправим
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не отображаются символы-пиктограммы по инструкции закрытия позиции CloseOrder в советнике:
CloseOrder(Ord(Cnt,VAL_TICKET),Ord(Cnt,VAL_LOTS),Ask,FactorOfSymbol*Slippage,YELLOW);
Цвета варьировал - не помогает.
При этом System tester при тестировании на истории значки исправно рисует.
MetaTrader 3.66 #4849. Подобное наблюдал и на более ранних версиях.
ОС - Windows XP SP1 rus, Windows NT4 Server SP6.
Это только у меня так?