Правообладателю не понравится! Отправлю на мыло,,, он его 2,5 кило толкает!выкладвый сюда
Правообладателю не понравится! Отправлю на мыло,,, он его 2,5 кило толкает!выкладвый сюда
Поправьте пожалуйста старого намбера, ошибки при компиляции
_http://file.sampo.ru/nv9k24/
тоже с Карелии?
В чем проблема? У меня цвет и ширина линий изменяются, :nda:Люди подправьте индюка. В настройках при смене цвета и ширину линий не чего не происходит, а хотелось бы. Заранее большое спасибо.
В чем проблема? У меня цвет и ширина линий изменяются, :nda:
В чем проблема? У меня цвет и ширина линий изменяются, :nda:
Доброго дня. Поглядите почему не открывается ни в тестере ни на графике. Спасибо.
Вот и второй перестал нормально работать. На Альпари-демо продолжает работать без проблем, а на реале Fxclub начал при модификации ордера запрашивать DLL и прекращать работать по алгоритму хотя работал нормально выдавая при модификации error1. Кто то убирал зависимость от DLL в коде но видать не совсем аккуратно. Посмотрите пожалуйста, может поддастся лечению и один и другой, хотя этот важнее он у меня на реале откусывал потихоньку.
int SendOrder(int Type, double Lots, int TP, int SL, int Magic, string Cmnt, int& err)
{
double Price, Take, Stop;
int Ticket, Slippage, Color, Err;
bool Delay = False;
Print("Функция SendOrder");
[B]while(!IsStopped())
{
if(!IsExpertEnabled())
{
err = ERR_TRADE_DISABLED;
Print("Эксперту запрещено торговать!");
return(-1);
}
Print("Эксперту разрешено торговать");
if(!IsConnected())
{
err = ERR_NO_CONNECTION;
Print("Связь отсутствует!");
return(-1);
}
Print("Связь с сервером установлена");
if(IsTradeContextBusy())
{
Print("Торговый поток занят!");
Print("Ожидаем 3 сек...");
Sleep(3000);
Delay = True;
continue;
}
Print("Торговый поток свободен");
if(Delay)
{
Print("Обновляем котировки");
RefreshRates();
Delay = False;
}
else
{
Print("Задержек не было");
}
switch(Type)
{
case OP_BUY:
Print("Инициализируем параметры для BUY-ордера");
Price = NormalizeDouble( Ask, Digits);
Take = IIFd(TP == 0, 0, NormalizeDouble( Ask + TP * Point, Digits));
Stop = IIFd(SL == 0, 0, NormalizeDouble( Ask - SL * Point, Digits));
Color = Blue;
break;
case OP_SELL:
Print("Инициализируем параметры для SELL-ордера");
Price = NormalizeDouble( Bid, Digits);
Take = IIFd(TP == 0, 0, NormalizeDouble( Bid - TP * Point, Digits));
Stop = IIFd(SL == 0, 0, NormalizeDouble( Bid + SL * Point, Digits));
Color = Red;
break;
case OP_BUYSTOP:
Print("Инициализируем параметры для BUYSTOP-ордера");
Price = NormalizeDouble(Ask + Dist * Point, Digits);
Take = IIFd(TP == 0, 0, NormalizeDouble((Ask + Dist * Point) + (TakeProfit * Point), Digits));
Stop = IIFd(SL == 0, 0, NormalizeDouble( Ask + Dist * Point - SL * Point, Digits));
Color = DarkBlue;
break;
case OP_SELLSTOP:
Print("Инициализируем параметры для SELLSTOP-ордера");
Price = NormalizeDouble( Bid - Dist * Point, Digits);
Take = IIFd(TP == 0, 0, NormalizeDouble((Bid - Dist * Point) - (TakeProfit * Point), Digits));
Stop = IIFd(SL == 0, 0, NormalizeDouble( Bid - Dist * Point + SL * Point, Digits));
Color = Maroon;
break;
default:
Print("Тип ордера не соответствует требованиям.");
return(-1);
}
Slippage = MarketInfo(Symbol(), MODE_SPREAD);
Print("Slippage = ",Slippage);
if(IsTradeAllowed())
{
Print("Торговля разрешена, отправляем ордер...");
Ticket = OrderSend(Symbol(), Type, Lots, Price, Slippage, Stop, Take, Cmnt, Magic, 0, Color);
if(Ticket < 0)
{
Err = GetLastError();
if (Err == 4 || /* SERVER_BUSY */
Err == 130 || /* INVALID_STOPS */
Err == 135 || /* PRICE_CHANGED */
Err == 137 || /* BROKER_BUSY */
Err == 138 || /* REQUOTE */
Err == 146 || /* TRADE_CONTEXT_BUSY */
Err == 136 ) /* OFF_QUOTES */
{
Print("Ошибка(OrderSend - ", Err, "): ", ErrorDescription(Err));
Print("Ожидаем 3 сек...");
Sleep(3000);
Delay = True;
continue;
}
else
{
Print("Критическая ошибка(OrderSend - ", Err, "): ", ErrorDescription(Err));
err = Err;
break;
}
}
break;
}
else
{
Print("Эксперту запрещено торговать или торговый поток занят!");
Print("Ожидаем 3 сек...");
Sleep(3000);
Delay = True;
continue;
}
}
Print("Ордер отправлен успешно. Тикет = ",Ticket);
return(Ticket);[/B]
}
RoboMaks,привет!Как таковых особых нарушений кода у него нет, некоторые мелочи подправил. Но его желательно сильно упростить - разработчики всё-же сильно перестарались во всех проверках
Из библиотек у него только stdlib - обработка ошибок, просто он теряет время на этих многочисленных проверках и в результате потери тиковых данных наоборот возникают ненужные ошибки.Код:int SendOrder(int Type, double Lots, int TP, int SL, int Magic, string Cmnt, int& err) { double Price, Take, Stop; int Ticket, Slippage, Color, Err; bool Delay = False; Print("Функция SendOrder"); [B]while(!IsStopped()) { if(!IsExpertEnabled()) { err = ERR_TRADE_DISABLED; Print("Эксперту запрещено торговать!"); return(-1); } Print("Эксперту разрешено торговать"); if(!IsConnected()) { err = ERR_NO_CONNECTION; Print("Связь отсутствует!"); return(-1); } Print("Связь с сервером установлена"); if(IsTradeContextBusy()) { Print("Торговый поток занят!"); Print("Ожидаем 3 сек..."); Sleep(3000); Delay = True; continue; } Print("Торговый поток свободен"); if(Delay) { Print("Обновляем котировки"); RefreshRates(); Delay = False; } else { Print("Задержек не было"); } switch(Type) { case OP_BUY: Print("Инициализируем параметры для BUY-ордера"); Price = NormalizeDouble( Ask, Digits); Take = IIFd(TP == 0, 0, NormalizeDouble( Ask + TP * Point, Digits)); Stop = IIFd(SL == 0, 0, NormalizeDouble( Ask - SL * Point, Digits)); Color = Blue; break; case OP_SELL: Print("Инициализируем параметры для SELL-ордера"); Price = NormalizeDouble( Bid, Digits); Take = IIFd(TP == 0, 0, NormalizeDouble( Bid - TP * Point, Digits)); Stop = IIFd(SL == 0, 0, NormalizeDouble( Bid + SL * Point, Digits)); Color = Red; break; case OP_BUYSTOP: Print("Инициализируем параметры для BUYSTOP-ордера"); Price = NormalizeDouble(Ask + Dist * Point, Digits); Take = IIFd(TP == 0, 0, NormalizeDouble((Ask + Dist * Point) + (TakeProfit * Point), Digits)); Stop = IIFd(SL == 0, 0, NormalizeDouble( Ask + Dist * Point - SL * Point, Digits)); Color = DarkBlue; break; case OP_SELLSTOP: Print("Инициализируем параметры для SELLSTOP-ордера"); Price = NormalizeDouble( Bid - Dist * Point, Digits); Take = IIFd(TP == 0, 0, NormalizeDouble((Bid - Dist * Point) - (TakeProfit * Point), Digits)); Stop = IIFd(SL == 0, 0, NormalizeDouble( Bid - Dist * Point + SL * Point, Digits)); Color = Maroon; break; default: Print("Тип ордера не соответствует требованиям."); return(-1); } Slippage = MarketInfo(Symbol(), MODE_SPREAD); Print("Slippage = ",Slippage); if(IsTradeAllowed()) { Print("Торговля разрешена, отправляем ордер..."); Ticket = OrderSend(Symbol(), Type, Lots, Price, Slippage, Stop, Take, Cmnt, Magic, 0, Color); if(Ticket < 0) { Err = GetLastError(); if (Err == 4 || /* SERVER_BUSY */ Err == 130 || /* INVALID_STOPS */ Err == 135 || /* PRICE_CHANGED */ Err == 137 || /* BROKER_BUSY */ Err == 138 || /* REQUOTE */ Err == 146 || /* TRADE_CONTEXT_BUSY */ Err == 136 ) /* OFF_QUOTES */ { Print("Ошибка(OrderSend - ", Err, "): ", ErrorDescription(Err)); Print("Ожидаем 3 сек..."); Sleep(3000); Delay = True; continue; } else { Print("Критическая ошибка(OrderSend - ", Err, "): ", ErrorDescription(Err)); err = Err; break; } } break; } else { Print("Эксперту запрещено торговать или торговый поток занят!"); Print("Ожидаем 3 сек..."); Sleep(3000); Delay = True; continue; } } Print("Ордер отправлен успешно. Тикет = ",Ticket); return(Ticket);[/B] }
Лучше добавить в него отдельную установку ТП-СЛ вместо всего этого - открытия ордеров сразу с ТП-СЛ работает не на всех типах счетов, что тоже будет приводить к ошибкам.
Благодарю. Не смотря на все излишества это пока самый стабильный бот из имеющихся у меня.Как таковых особых нарушений кода у него нет, некоторые мелочи подправил. Но его желательно сильно упростить - разработчики всё-же сильно перестарались во всех проверках
Из библиотек у него только stdlib - обработка ошибок, просто он теряет время на этих многочисленных проверках и в результате потери тиковых данных наоборот возникают ненужные ошибки.Код:int SendOrder(int Type, double Lots, int TP, int SL, int Magic, string Cmnt, int& err) { double Price, Take, Stop; int Ticket, Slippage, Color, Err; bool Delay = False; Print("Функция SendOrder"); [B]while(!IsStopped()) { if(!IsExpertEnabled()) { err = ERR_TRADE_DISABLED; Print("Эксперту запрещено торговать!"); return(-1); } Print("Эксперту разрешено торговать"); if(!IsConnected()) { err = ERR_NO_CONNECTION; Print("Связь отсутствует!"); return(-1); } Print("Связь с сервером установлена"); if(IsTradeContextBusy()) { Print("Торговый поток занят!"); Print("Ожидаем 3 сек..."); Sleep(3000); Delay = True; continue; } Print("Торговый поток свободен"); if(Delay) { Print("Обновляем котировки"); RefreshRates(); Delay = False; } else { Print("Задержек не было"); } switch(Type) { case OP_BUY: Print("Инициализируем параметры для BUY-ордера"); Price = NormalizeDouble( Ask, Digits); Take = IIFd(TP == 0, 0, NormalizeDouble( Ask + TP * Point, Digits)); Stop = IIFd(SL == 0, 0, NormalizeDouble( Ask - SL * Point, Digits)); Color = Blue; break; case OP_SELL: Print("Инициализируем параметры для SELL-ордера"); Price = NormalizeDouble( Bid, Digits); Take = IIFd(TP == 0, 0, NormalizeDouble( Bid - TP * Point, Digits)); Stop = IIFd(SL == 0, 0, NormalizeDouble( Bid + SL * Point, Digits)); Color = Red; break; case OP_BUYSTOP: Print("Инициализируем параметры для BUYSTOP-ордера"); Price = NormalizeDouble(Ask + Dist * Point, Digits); Take = IIFd(TP == 0, 0, NormalizeDouble((Ask + Dist * Point) + (TakeProfit * Point), Digits)); Stop = IIFd(SL == 0, 0, NormalizeDouble( Ask + Dist * Point - SL * Point, Digits)); Color = DarkBlue; break; case OP_SELLSTOP: Print("Инициализируем параметры для SELLSTOP-ордера"); Price = NormalizeDouble( Bid - Dist * Point, Digits); Take = IIFd(TP == 0, 0, NormalizeDouble((Bid - Dist * Point) - (TakeProfit * Point), Digits)); Stop = IIFd(SL == 0, 0, NormalizeDouble( Bid - Dist * Point + SL * Point, Digits)); Color = Maroon; break; default: Print("Тип ордера не соответствует требованиям."); return(-1); } Slippage = MarketInfo(Symbol(), MODE_SPREAD); Print("Slippage = ",Slippage); if(IsTradeAllowed()) { Print("Торговля разрешена, отправляем ордер..."); Ticket = OrderSend(Symbol(), Type, Lots, Price, Slippage, Stop, Take, Cmnt, Magic, 0, Color); if(Ticket < 0) { Err = GetLastError(); if (Err == 4 || /* SERVER_BUSY */ Err == 130 || /* INVALID_STOPS */ Err == 135 || /* PRICE_CHANGED */ Err == 137 || /* BROKER_BUSY */ Err == 138 || /* REQUOTE */ Err == 146 || /* TRADE_CONTEXT_BUSY */ Err == 136 ) /* OFF_QUOTES */ { Print("Ошибка(OrderSend - ", Err, "): ", ErrorDescription(Err)); Print("Ожидаем 3 сек..."); Sleep(3000); Delay = True; continue; } else { Print("Критическая ошибка(OrderSend - ", Err, "): ", ErrorDescription(Err)); err = Err; break; } } break; } else { Print("Эксперту запрещено торговать или торговый поток занят!"); Print("Ожидаем 3 сек..."); Sleep(3000); Delay = True; continue; } } Print("Ордер отправлен успешно. Тикет = ",Ticket); return(Ticket);[/B] }
Лучше добавить в него отдельную установку ТП-СЛ вместо всего этого - открытия ордеров сразу с ТП-СЛ работает не на всех типах счетов, что тоже будет приводить к ошибкам.
Ставишь только на фунт?Благодарю. Не смотря на все излишества это пока самый стабильный бот из имеющихся у меня.
Ставишь только на фунт?
Ставишь только на фунт?
Может забыли поставить галочку-Разрешить импорт DLL.Здравствуйте. На компе установлен терминал Build 950. Работает индикатор Coridor FullSSA normalize - mtf + lines 3.01 nmc.
Скачал другой терминал (Build 950), чтобы посмотреть другие котировки, библиотеку libSSA.dll закинул в Libraries, но индикатор не выводится на график.
Скачал еще один терминал - тоже самое.
Установил терминал на другой компьютер - не устанавливается на график и все тут.
Также не устанавливаются другие SSA индикаторы.
Подскажите, пожалуйста, в чем причина и что делать, чтобы поставить их на график?
Проблема - при смене ТФ все возвращается в исходное
(это я тебе перевел, что парень спрашивал)
=====
2 Освит проверь