Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всегда отложниками было сложно управлять. на мт4 тоже. может попробовать уйти от этого? например сделать виртуальные отложники (просто хранить их в переменных и открываться по рынку, когда цена пересекла). Сейчас ведь время важно...
времени нет уже... код только отладил.
хоть немного потестировать успеть, настроить
Такие единичные ошибки не повлияют на судьбу Вашего советника на чемпионате. Вот если при отсутствии денег он тупо будет повторно пытаться открыть позицию, генерируя гигабайты в журнал, как это бывало в прошлых чемпионатах, тогда дисквалифицируют.
Я бы не хотел, чтобы из-за подобного доверия к рекомендуемым функциям мой эксперт исключили из соревнования. Но как тогда узнать корректный разрешенный уровень стопов на данный момент по данному символу?
P.S. Очень не хотелось бы использовать подбор с инкрементным увеличением в случае ошибки, да и количество ошибок в этом случае возрастет.У меня возникла проблема в определении уровней стопов для отложенных ордеров. При спокойном рынке при желании поставить ордер на дозволенную границу великолепно работает функция SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL), ордера ставятся и все довольны, в том числе и я. А при сильных движениях рынка в начале торговых сессий эта функция перестает работать, ордера не ставятся и в терминале начинают сыпаться ошибки про invalid stops.
Я бы не хотел, чтобы из-за подобного доверия к рекомендуемым функциям мой эксперт исключили из соревнования. Но как тогда узнать корректный разрешенный уровень стопов на данный момент по данному символу?
P.S. Очень не хотелось бы использовать подбор с инкрементным увеличением в случае ошибки, да и количество ошибок в этом случае возрастет.Для отложенных ордеров ошибка invalid stops возникает и при цене открытия ближе стоплевел от текущей.
т.е. проверять на стоплевел надо не только стопы, но и цену открытия.
Полагаю, что имеется ошибка в работе функции HistoryDealsTotal(), если она запускается после HistorySelectByPosition().
Через раз выдаёт количество сделок, равное 0, и это при наличии открытой позиции (мультивалютный вариант).
Вот такой код:
void GetDealQuantity(string smbl)
{
long pos_id;
int total, quantity=0;
ulong ticket=0, newticket;
PositionSelect(smbl);
pos_id=PositionGetInteger(POSITION_IDENTIFIER);
bool select=HistorySelectByPosition(pos_id);
total=HistoryDealsTotal();
Print(__FUNCTION__," select=",select," total=",total);
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
newticket=HistoryOrderGetTicket(i);
if(ticket!=newticket) { quantity++; ticket=newticket; }
}
if(smbl==symbol1) quantity1=quantity;
if(smbl==symbol2) quantity2=quantity;
Print(__FUNCTION__," quantity=",quantity);
}
Выдаёт в журнал:
2010.01.04 00:20:05 GetDealQuantity select=true total=0
2010.01.04 00:20:05 GetDealQuantity quantity=0
2010.01.04 00:20:05 EURJPY volume=0.1 quantity=0
2010.01.04 00:20:05 GetDealQuantity select=true total=1
2010.01.04 00:20:05 GetDealQuantity quantity=1
2010.01.04 00:20:05 AUDUSD volume=0.1 quantity=1
Старайтесь правильно вставлять код в сообщения. Попробуйте переделать свой пример так:
Есть где-нибудь пример скрипта записи последней котировки в буфер обмена или похожее что-нибудь?
Буфер обмена виндовса?
Надо в msdn смотреть в какой dll нужные функции...