хотелось бы узнать, есть ли в 5 альтернатива скрипту с бесконечным циклом, а то подобный скрипт сильно капризный, хотелось бы, что бы при повторном открытии терминала или смене тф он продолжал работу?
Olegts: хотелось бы узнать, есть ли в 5 альтернатива скрипту с бесконечным циклом, а то подобный скрипт сильно капризный, хотелось бы, что бы при повторном открытии терминала или смене тф он продолжал работу?
Если вас устраивает минимальная частота 1сек тогда OnTimer, иначе
Пока в OnTimer не будет работы с микросекундами нет.
possible loss of data due to type conversion ChartObject.mqh 213 4 possible loss of data due to type conversion ChartObject.mqh 481 4 possible loss of data due to type conversion ChartObject.mqh 867 17 possible loss of data due to type conversion ChartObjectsTxtControls.mqh 519 4
Билд 375 - появились ворнинги в стандартных библиотеках. Может еще где есть, пока не проверял.
nanaos: Подскажите пожалуйста, каким образом можно узнать, что сделка завершилась по стоп-лоссу?
В МТ5 Не сделка завершается по стоп-лоссу, а позиция,на данный момент можно узнать только по комментарию сделки которая закрыла позицию по стоп-лоссу. Вот примерный код.
void Event()
{
if(!HistorySelectByPosition(ID))return;
double margin=0.0;
bool res;
int total=HistoryOrdersTotal();
ulong deal_ticket=HistoryDealGetTicket(total-1);
string coment=HistoryDealGetString(deal_ticket,DEAL_COMMENT);
long deal_type=HistoryDealGetInteger(deal_ticket,DEAL_TYPE);
double volume=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
double MinLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double MaxLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
ulong stoplevel=SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);
if(deal_type==ORDER_TYPE_BUY)
{
if(StringFind(coment,"sl")>=0)
{
request.volume=NormalizeDouble(volume*Klot,DigitsVolume());
request.price=NormalizeDouble(Bid,_Digits);
request.type = ORDER_TYPE_SELL;
if(SL<=0 || TP<=0)return;
if(SL>=stoplevel) request.sl=NormalizeDouble(Ask+(SL*_Point),_Digits);
if(SL<stoplevel) request.sl=NormalizeDouble(Ask+(stoplevel*_Point),_Digits);
if(TP>=stoplevel) request.tp=NormalizeDouble(Bid -(TP*_Point),_Digits);
if(TP<stoplevel) request.tp=NormalizeDouble(Bid -(stoplevel*_Point),_Digits);
OrderCalcMargin(request.type,_Symbol,request.volume,Bid,margin);
if(AccountInfoDouble(ACCOUNT_FREEMARGIN)-margin<0)return;
}
if(StringFind(coment,"tp")>=0){flagNewSeries=true;return;}
}
if(deal_type==ORDER_TYPE_SELL)
{
if(StringFind(coment,"sl")>=0)
{
request.volume=NormalizeDouble(volume*Klot,DigitsVolume());
request.price=NormalizeDouble(Ask,_Digits);
request.type = ORDER_TYPE_BUY;
if(SL<=0 || TP<=0)return;
if(SL>=stoplevel) request.sl=NormalizeDouble(Bid -(SL*_Point),_Digits);
if(SL<stoplevel) request.sl=NormalizeDouble(Bid -(stoplevel*_Point),_Digits);
if(TP>=stoplevel) request.tp=NormalizeDouble(Ask+(TP*_Point),_Digits);
if(TP<stoplevel) request.tp=NormalizeDouble(Ask+(stoplevel*_Point),_Digits);
OrderCalcMargin(request.type,_Symbol,request.volume,Ask,margin);
if(AccountInfoDouble(ACCOUNT_FREEMARGIN)-margin<0)return;
}
if(StringFind(coment,"tp")>=0){flagNewSeries=true;return;}
}
if(request.volume<MinLot)request.volume=MinLot;
if(request.volume>MaxLot)request.volume=MaxLot;
request.volume=NormalizeDouble(request.volume,DigitsVolume());
request.action = TRADE_ACTION_DEAL;
request.magic = Magic;
request.symbol = _Symbol;
request.deviation = Slip;
request.type_filling = ORDER_FILLING_AON;
request.comment = CommentOrder;
OrderSend(request,result);
switch(result.retcode)
{
case10008: {Print("Ордер размещен");PositionSelect(Symbol());ID=PositionGetInteger(POSITION_IDENTIFIER);}break;
case10009: {Print("Заявка выполнена");PositionSelect(Symbol());ID=PositionGetInteger(POSITION_IDENTIFIER);}break;
case10004: {Print("Реквота");}break;
case10006: {Print("Запрос отвергнут");}break;
case10007: {Print("Запрос отменен трейдером");res=false;}break;
case10010: {Print("Заявка выполнена частично");res=false;}break;
case10011: {Print("Ошибка обработки запроса");res=false;}break;
case10012: {Print("Запрос отменен по истечению времени");}break;
case10013: {Print("Неправильный запрос");res=false;}break;
case10014: {Print("Неправильный объем в запросе");res=false;}break;
case10015: {Print("Неправильная цена в запросе");res=false;}break;
case10016: {Print("Неправильные стопы в запросе");res=false;}break;
case10017: {Print("Торговля запрещена");res=false;}break;
case10018: {Print("Рынок закрыт");}break;
case10019: {Print("Нет достаточных денежных средств для выполнения запроса");res=false;}break;
case10020: {Print("Цены изменились");}break;
case10021: {Print("Отсутствуют котировки для обработки запроса");}break;
case10022: {Print("Неверная дата истечения ордера в запросе");res=false;}break;
case10023: {Print("Состояние ордера изменилось");}break;
case10024: {Print("Слишком частые запросы");res=false;}break;
case10025: {Print("В запросе нет изменений");res=false;}break;
case10026: {Print("Автотрейдинг запрещен сервером");res=false;}break;
case10027: {Print("Автотрейдинг запрещен клиентским терминалом");res=false;}break;
case10028: {Print("Запрос заблокирован для обработки");res=false;}break;
case10029: {Print("Ордер или позиция заморожены");res=false;}break;
case10030: {Print("Указан неподдерживаемый тип исполнения ордера по остатку");res=false;}break;
case10031: {Print("Нет соединения с торговым сервером");}break;
case10032: {Print("Операция разрешена только для реальных счетов");res=false;}break;
case10033: {Print("Достигнут лимит на количество отложенных ордеров");res=false;}break;
case10034: {Print("Достигнут лимит на объем ордеров и позиций для данного символа");res=false;}break;
default: Print("Ошибка № - ",result.retcode);
}
}
Советник оптимизировался на интервале AB. Выше прогон его с этими параметрами на интервале AD. Не пойму, что происходит в точке C.
Притом что советник практически не оптимизируется на интервале CD. Может есть изменение каких либо правил торговли после 25.10.2010 (точка C) или еще что либо?
Советник оптимизировался на интервале AB. Выше прогон его с этими параметрами на интервале AD. Не пойму, что происходит в точке C.
Притом что советник практически не оптимизируется на интервале CD. Может есть изменение каких либо правил торговли после 25.10.2010 (точка C) или еще что либо?
Размер средней прибыльной сделки у советника какой? Что-то мне подсказывает, что меньше 10 пунктов.
Проблема, скорее всего, в исторических данных - они или более причесанные (фильтрованные), или просто более корректные (например, содержат правильные спреды).
Модераторы. к вам вопрос
Не могу отправить заявку в сервисдеск.
и кнопка "Закрыть" не работает
Модераторы. к вам вопрос
Не могу отправить заявку в сервисдеск.
и кнопка "Закрыть" не работает
хотелось бы узнать, есть ли в 5 альтернатива скрипту с бесконечным циклом, а то подобный скрипт сильно капризный, хотелось бы, что бы при повторном открытии терминала или смене тф он продолжал работу?
Если вас устраивает минимальная частота 1сек тогда OnTimer, иначе
Пока в OnTimer не будет работы с микросекундами нет.
possible loss of data due to type conversion ChartObject.mqh 481 4
possible loss of data due to type conversion ChartObject.mqh 867 17
possible loss of data due to type conversion ChartObjectsTxtControls.mqh 519 4
Билд 375 - появились ворнинги в стандартных библиотеках. Может еще где есть, пока не проверял.
Если вас устраивает минимальная частота 1сек тогда OnTimer, иначе
Пока в OnTimer не будет работы с микросекундами нет.
Подскажите пожалуйста, каким образом можно узнать, что сделка завершилась по стоп-лоссу?
В МТ5 Не сделка завершается по стоп-лоссу, а позиция,на данный момент можно узнать только по комментарию сделки которая закрыла позицию по стоп-лоссу. Вот примерный код.
Советник оптимизировался на интервале AB. Выше прогон его с этими параметрами на интервале AD. Не пойму, что происходит в точке C.
Притом что советник практически не оптимизируется на интервале CD. Может есть изменение каких либо правил торговли после 25.10.2010 (точка C) или еще что либо?
Советник оптимизировался на интервале AB. Выше прогон его с этими параметрами на интервале AD. Не пойму, что происходит в точке C.
Притом что советник практически не оптимизируется на интервале CD. Может есть изменение каких либо правил торговли после 25.10.2010 (точка C) или еще что либо?
Размер средней прибыльной сделки у советника какой? Что-то мне подсказывает, что меньше 10 пунктов.
Проблема, скорее всего, в исторических данных - они или более причесанные (фильтрованные), или просто более корректные (например, содержат правильные спреды).
Сервер какой?