YZ_SOVETNIK_ASCTREND.rar 37,53 КБ
799 СкачаноДобрый день!
предлагаю вести раздел - все что касается автоматизации
Советники скрипты и прочее
выкладываю простого советника
торгующего на одном индикаторе ASCTrend
советник торгуют по 10 парам
там где возникают сигналы
для проверки в тестере стратегий необходимо
выбрать параметры TEST_PARA поставить в 1
для выборара тестируемой пары
выбрать номер тестируемой пары
pВыборCur
номера следующие
1 "EURUSD"
2 "GBPUSD"
3 "USDCHF"
4 "USDJPY"
5 "EURJPY"
6 "GBPJPY"
7 "GBPCHF"
8 "EURGBP"
9 "AUDUSD"
10 "USDCAD"
11 "NZDUSD"
12 "GOLD"
что за хрень. нифига не тестируется. я не пойму что за фигня, где простой советник. простой советник - это когда индюк нарисовал стрелку на графике, ордер открылся, противоположный закрылся.
нафига усложнять, если трейл прикрутить, а так нифига не тестируется и непонятка полная. вот простой советник это да. где простота? нифига не работает. простой советник должен нормально работать и не весить 32 кило, что там на 32 кило мне не понятно. 32 кило - что там такого на 32 кило? берем индюка, где рисует стрелку там вход и выход. что еще надо? горе от ума. все просто, есть библиотеки если усложнять охота, но от усложнения нет эффекта. блин не тестируется нифига, и непонятка в коде гора переменнных /*
Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
Website:
http://purebeam.biz E-mail : purebeam@gmail.com
*/
#property copyright "Shablon1"
#property link "yzh@mail.ru"
extern int gПУСК = 30;
extern int TEST_PARA = 1; //0;
extern int РазешитьBUY = 1;
extern int РазешитьSELL = 1;
extern int РазешитьCLOSE = 1;
extern double gSTOP = 250; //15.0;
extern double DecreaseFactor = 0.2;
extern double cРиск_Пипса = 30.0;
extern double cРиск_СРЕДНЕ = 10.0;
extern double cРиск_ДОЛГО = 5.0;
double gda_unused_132[1000];
extern double cОбщийРиск = 5.0;
double gd_unused_144 = 0.0;
double gd_unused_152 = 0.0;
double gd_unused_160 = 0.0;
extern double cLots = 0.01;
extern double cLotsPIPS = 0.0;
extern int cКоличество_SL_LOTS = 3;
extern int cСТАВИТЬ_ОБРАТНЫЕ = 0;
extern int gcCur = 12;
extern int pВыборCur = 0;
extern int gTrailingStop = 115;
extern int МИНИМУМ_ПИПС_ДОСТАТОЧНО = 50;
int gia_208[9] = {0, 1, 5, 15, 30, 60, 240, 1440, 10080,
43200};
string gsa_212[30];
int gia_216[30];
int gia_220[30];
int gia_224[30];
double gda_228[30];
double gda_232[30];
double gda_236[30];
double gda_240[30];
extern int gKperiod = 21;
extern int gDperiod = 44;
extern int gSlowing = 3;
int gia_unused_256[30];
int gia_unused_260[30];
int gia_unused_264[30];
int gia_unused_268[30];
int gia_unused_272[30];
int gia_unused_276[30];
int gia_unused_280[30];
int gia_unused_284[30];
int gia_unused_288[30];
int gia_unused_292[30];
int gia_unused_296[30];
int gia_unused_300[30];
int gia_unused_304[30];
int gia_unused_308[30];
int gia_unused_312[30];
int gia_unused_316[30];
int gia_unused_320[30];
int gia_unused_324[30];
int gia_unused_328[30];
int gia_unused_332[30];
double gda_336[30];
double gda_340[30];
double gda_344[30];
double gda_348[30];
double gda_352[30];
double gda_356[30];
double gda_360[30];
double gda_364[30];
double gda_368[30];
double gda_372[30];
double gda_376[30];
double gda_380[30];
double gda_384[30];
double gda_388[30];
double gda_392[30];
double gda_396[30];
double gda_400[30];
double gda_404[30];
double gda_408[1000];
double gda_412[1000];
int gia_416[30];
int gia_420[30];
string gsa_424[30];
string gsa_428[30];
double gda_432[30];
double gda_436[30];
int gia_440[30];
int gi_unused_444 = 0;
int gi_unused_448 = 0;
int gi_unused_452 = 0;
int gi_unused_456 = 0;
int gi_unused_460 = 0;
int gi_unused_472 = 0;
void init() {
YZInitAllData();
}
void deinit() {
}
void start() {
string ls_0;
int li_8;
for (int li_12 = 1; li_12 <= gcCur; li_12++) {
if (gia_220[li_12] != 0 || gia_216[li_12] != 0) {
if (pВыборCur != 0) li_8 = pВыборCur;
else li_8 = li_12;
ls_0 = gsa_212[li_8];
YZЧтениеИндикаторов(li_8, ls_0);
YZБлокПринятияРешения(li_8, ls_0);
if (pВыборCur != 0) return;
}
}
}
string msgErrors(int ai_0) {
string ls_ret_4;
switch (ai_0) {
case 0:
ls_ret_4 = ai_0 + " Нет ошибки ";
break;
case 1:
ls_ret_4 = ai_0 + " Нет ошибки, но результат неизвестен ";
break;
case 2:
ls_ret_4 = ai_0 + " Общая ошибка ";
break;
case 3:
ls_ret_4 = ai_0 + " Неправильные параметры ";
break;
case 4:
ls_ret_4 = ai_0 + " Торговый сервер занят ";
break;
case 5:
ls_ret_4 = ai_0 + " Старая версия клиентского терминала ";
break;
case 6:
ls_ret_4 = ai_0 + " Нет связи с торговым сервером ";
break;
case 7:
ls_ret_4 = ai_0 + " Недостаточно прав ";
break;
case 8:
ls_ret_4 = ai_0 + " Слишком частые запросы ";
break;
case 9:
ls_ret_4 = ai_0 + " Недопустимая операция нарушающая функционирование сервера ";
break;
case 64:
ls_ret_4 = ai_0 + " Счет заблокирован ";
break;
case 65:
ls_ret_4 = ai_0 + " Неправильный номер счета ";
break;
case 128:
ls_ret_4 = ai_0 + " Истек срок ожидания совершения сделки ";
break;
case 129:
ls_ret_4 = ai_0 + " Неправильная цена ";
break;
case 130:
ls_ret_4 = ai_0 + " Неправильные стопы ";
break;
case 131:
ls_ret_4 = ai_0 + " Неправильный объем ";
break;
case 132:
ls_ret_4 = ai_0 + " Рынок закрыт ";
break;
case 133:
ls_ret_4 = ai_0 + " Торговля запрещена ";
break;
case 134:
ls_ret_4 = ai_0 + " Недостаточно денег для совершения операции ";
break;
case 135:
ls_ret_4 = ai_0 + " Цена изменилась ";
break;
case 136:
ls_ret_4 = ai_0 + " Нет цен ";
break;
case 137:
ls_ret_4 = ai_0 + " Брокер занят ";
break;
case 138:
ls_ret_4 = ai_0 + " Новые цены ";
break;
case 139:
ls_ret_4 = ai_0 + " Ордер заблокирован и уже обрабатывается ";
break;
case 140:
ls_ret_4 = ai_0 + " Разрешена только покупка ";
break;
case 141:
ls_ret_4 = ai_0 + " Слишком много запросов ";
break;
case 145:
ls_ret_4 = ai_0 + " Модификация запрещена, так как ордер слишком близок к рынку ";
break;
case 146:
ls_ret_4 = ai_0 + " Подсистема торговли занята ";
break;
case 147:
ls_ret_4 = ai_0 + " Использование даты истечения ордера запрещено брокером ";
break;
case 4000:
ls_ret_4 = ai_0 + " Нет ошибки ";
break;
case 4001:
ls_ret_4 = ai_0 + " Неправильный указатель функции ";
break;
case 4002:
ls_ret_4 = ai_0 + " Индекс массива - вне диапазона ";
break;
case 4003:
ls_ret_4 = ai_0 + " Нет памяти для стека функций ";
break;
case 4004:
ls_ret_4 = ai_0 + " Переполнение стека после рекурсивного вызова ";
break;
case 4005:
ls_ret_4 = ai_0 + " На стеке нет памяти для передачи параметров ";
break;
case 4006:
ls_ret_4 = ai_0 + " Нет памяти для строкового параметра ";
break;
case 4007:
ls_ret_4 = ai_0 + " Нет памяти для временной строки ";
break;
case 4008:
ls_ret_4 = ai_0 + " Неинициализированная строка ";
break;
case 4009:
ls_ret_4 = ai_0 + " Неинициализированная строка в массиве ";
break;
case 4010:
ls_ret_4 = ai_0 + " Нет памяти для строкового массива ";
break;
case 4011:
ls_ret_4 = ai_0 + " Слишком длинная строка ";
break;
case 4012:
ls_ret_4 = ai_0 + " Остаток от деления на ноль ";
break;
case 4013:
ls_ret_4 = ai_0 + " Деление на ноль ";
break;
case 4014:
ls_ret_4 = ai_0 + " Неизвестная команда ";
break;
case 4015:
ls_ret_4 = ai_0 + " Неправильный переход ";
break;
case 4016:
ls_ret_4 = ai_0 + " Неинициализированный массив ";
break;
case 4017:
ls_ret_4 = ai_0 + " Вызовы DLL не разрешены ";
break;
case 4018:
ls_ret_4 = ai_0 + " Невозможно загрузить библиотеку ";
break;
case 4019:
ls_ret_4 = ai_0 + " Невозможно вызвать функцию ";
break;
case 4020:
ls_ret_4 = ai_0 + " Вызовы внешних библиотечных функций не разрешены ";
break;
case 4021:
ls_ret_4 = ai_0 + " Недостаточно памяти для строки, возвращаемой из функции ";
break;
case 4022:
ls_ret_4 = ai_0 + " Система занята ";
break;
case 4050:
ls_ret_4 = ai_0 + " Неправильное количество параметров функции ";
break;
case 4051:
ls_ret_4 = ai_0 + " Недопустимое значение параметра функции ";
break;
case 4052:
ls_ret_4 = ai_0 + " Внутренняя ошибка строковой функции ";
break;
case 4053:
ls_ret_4 = ai_0 + " Ошибка массива ";
break;
case 4054:
ls_ret_4 = ai_0 + " Неправильное использование массива-таймсерии ";
break;
case 4055:
ls_ret_4 = ai_0 + " Ошибка пользовательского индикатора ";
break;
case 4056:
ls_ret_4 = ai_0 + " Массивы несовместимы ";
break;
case 4057:
ls_ret_4 = ai_0 + " Ошибка обработки глобальныех переменных ";
break;
case 4058:
ls_ret_4 = ai_0 + " Глобальная переменная не обнаружена ";
break;
case 4059:
ls_ret_4 = ai_0 + " Функция не разрешена в тестовом режиме ";
break;
case 4060:
ls_ret_4 = ai_0 + " Функция не подтверждена ";
break;
case 4061:
ls_ret_4 = ai_0 + " Ошибка отправки почты ";
break;
case 4062:
ls_ret_4 = ai_0 + " Ожидается параметр типа string ";
break;
case 4063:
ls_ret_4 = ai_0 + " Ожидается параметр типа integer ";
break;
case 4064:
ls_ret_4 = ai_0 + " Ожидается параметр типа double ";
break;
case 4065:
ls_ret_4 = ai_0 + " В качестве параметра ожидается массив ";
break;
case 4066:
ls_ret_4 = ai_0 + " Запрошенные исторические данные в состоянии обновления ";
break;
case 4067:
ls_ret_4 = ai_0 + " Ошибка при выполнении торговой операции ";
break;
case 4099:
ls_ret_4 = ai_0 + " Конец файла ";
break;
case 4100:
ls_ret_4 = ai_0 + " Ошибка при работе с файлом ";
break;
case 4101:
ls_ret_4 = ai_0 + " Неправильное имя файла ";
break;
case 4102:
ls_ret_4 = ai_0 + " Слишком много открытых файлов ";
break;
case 4103:
ls_ret_4 = ai_0 + " Невозможно открыть файл ";
break;
case 4104:
ls_ret_4 = ai_0 + " Несовместимый режим доступа к файлу ";
break;
case 4105:
ls_ret_4 = ai_0 + " Ни один ордер не выбран ";
break;
case 4106:
ls_ret_4 = ai_0 + " Неизвестный символ ";
break;
case 4107:
ls_ret_4 = ai_0 + " Неправильный параметр цены для торговой функции ";
break;
case 4108:
ls_ret_4 = ai_0 + " Неверный номер тикета ";
break;
case 4109:
ls_ret_4 = ai_0 + " Торговля не разрешена ";
break;
case 4110:
ls_ret_4 = ai_0 + " Длинные позиции не разрешены ";
break;
case 4111:
ls_ret_4 = ai_0 + " Короткие позиции не разрешены ";
break;
case 4200:
ls_ret_4 = ai_0 + " Объект уже существует ";
break;
case 4201:
ls_ret_4 = ai_0 + " Запрошено неизвестное свойство объекта ";
break;
case 4202:
ls_ret_4 = ai_0 + " Объект не существует ";
break;
case 4203:
ls_ret_4 = ai_0 + " Неизвестный тип объекта ";
break;
case 4204:
ls_ret_4 = ai_0 + " Нет имени объекта ";
break;
case 4205:
ls_ret_4 = ai_0 + " Ошибка координат объекта ";
break;
case 4206:
ls_ret_4 = ai_0 + " Не найдено указанное подокно ";
break;
case 4207:
ls_ret_4 = ai_0 + " Ошибка при работе с объектом ";
break;
default:
ls_ret_4 = "unknown error";
}
return (ls_ret_4);
}
void SetPropArrow_YZ(double a_price_0, int ai_8, int ai_12, int ai_16, color a_color_20, string as_24) {
string l_name_32;
int l_datetime_40 = TimeCurrent();
if (ai_8 == 0) l_name_32 = "Время_" + TimeToStr(l_datetime_40) + "_" + DoubleToStr(a_price_0, 4) + "_МBUY " + as_24;
else l_name_32 = "Время_" + TimeToStr(l_datetime_40) + "_" + DoubleToStr(a_price_0, 4) + "_MSELL " + as_24;
if (ObjectFind(l_name_32) < 0) {
ObjectCreate(l_name_32, OBJ_ARROW, 0, l_datetime_40, a_price_0);
ObjectSet(l_name_32, OBJPROP_COLOR, a_color_20);
ObjectSet(l_name_32, OBJPROP_ARROWCODE, ai_16);
}
SetPropArrow_DT(a_price_0, ai_8, ai_12, as_24, a_color_20);
SetPropArrow(a_price_0, ai_8, ai_12, as_24, a_color_20);
}
void SetPropArrow_DT(double ad_0, int ai_8, int ai_12, string as_16, color a_color_24) {
string l_name_28;
int l_datetime_36 = TimeCurrent();
if (ai_8 == 0) l_name_28 = "Время_" + TimeToStr(l_datetime_36) + "_" + DoubleToStr(ad_0, 4) + "_BUY " + as_16;
else l_name_28 = "Время_" + TimeToStr(l_datetime_36) + "_" + DoubleToStr(ad_0, 4) + "_SELL " + as_16;
if (ObjectFind(l_name_28) < 0) {
ObjectCreate(l_name_28, OBJ_VLINE, 0, 0, l_datetime_36);
ObjectSet(l_name_28, OBJPROP_TIME1, l_datetime_36);
if (ai_12 == 0) {
if (ai_8 == 0) {
ObjectSet(l_name_28, OBJPROP_COLOR, a_color_24);
ObjectSetText(l_name_28, "BUY " + DoubleToStr(ad_0, 4), 10, "Times New Roman", a_color_24);
} else {
ObjectSet(l_name_28, OBJPROP_COLOR, a_color_24);
ObjectSetText(l_name_28, "SELL " + DoubleToStr(ad_0, 4), 10, "Times New Roman", a_color_24);
}
}
if (ai_12 == 1) {
if (ai_8 == 1) {
ObjectSet(l_name_28, OBJPROP_COLOR, a_color_24);
ObjectSetText(l_name_28, "CLOSE SELL " + DoubleToStr(ad_0, 4), 10, "Times New Roman", a_color_24);
} else {
ObjectSet(l_name_28, OBJPROP_COLOR, a_color_24);
ObjectSetText(l_name_28, "CLOSE BUY " + DoubleToStr(ad_0, 4), 10, "Times New Roman", a_color_24);
}
}
ObjectSet(l_name_28, OBJPROP_ARROWCODE, SYMBOL_ARROWUP);
}
}
void SetPropArrow(double ad_0, int ai_8, int ai_12, string as_16, color a_color_24) {
string l_name_28;
if (ai_8 == 0) l_name_28 = "Пунк_" + TimeToStr(TimeCurrent()) + "_" + DoubleToStr(ad_0, 4) + "_BUY " + as_16;
else l_name_28 = "Пунк_" + TimeToStr(TimeCurrent()) + "_" + DoubleToStr(ad_0, 4) + "_SELL " + as_16;
if (ObjectFind(l_name_28) < 0) {
ObjectCreate(l_name_28, OBJ_ARROW, 0, 0, 0);
ObjectSet(l_name_28, OBJPROP_PRICE1, ad_0);
if (ai_12 == 0) {
if (ai_8 == 0) {
ObjectSet(l_name_28, OBJPROP_COLOR, a_color_24);
ObjectSetText(l_name_28, "BUY " + DoubleToStr(ad_0, 4), 10, "Times New Roman", a_color_24);
} else {
ObjectSet(l_name_28, OBJPROP_COLOR, SandyBrown);
ObjectSetText(l_name_28, "SELL " + DoubleToStr(ad_0, 4), 10, "Times New Roman", a_color_24);
}
}
if (ai_12 == 1) {
if (ai_8 == 1) ObjectSet(l_name_28, OBJPROP_COLOR, a_color_24);
else ObjectSet(l_name_28, OBJPROP_COLOR, a_color_24);
}
ObjectSet(l_name_28, OBJPROP_ARROWCODE, SYMBOL_ARROWUP);
}
}
void OpenSell(string a_symbol_0, int ai_unused_8, double ad_12, double a_pips_20, double a_pips_28, double ad_unused_36, int a_slippage_44, int ai_48, double a_pips_52, string a_comment_60, int ai_unused_68) {
double l_price_80;
double l_price_88;
string ls_unused_104;
int l_error_120;
string l_comment_148;
double l_lots_72 = ad_12;
double l_ask_124 = MarketInfo(a_symbol_0, MODE_ASK);
l_ask_124 = MarketInfo(a_symbol_0, MODE_ASK);
double l_bid_132 = MarketInfo(a_symbol_0, MODE_BID);
double l_point_140 = MarketInfo(a_symbol_0, MODE_POINT);
if (a_pips_20 != 0.0) l_price_80 = l_ask_124 + a_pips_20 * l_point_140;
else l_price_80 = 0;
if (a_pips_28 != 0.0) l_price_88 = l_bid_132 - a_pips_28 * l_point_140;
else l_price_88 = 0;
int l_ticket_116 = OrderSend(a_symbol_0, OP_SELL, l_lots_72, l_bid_132, a_slippage_44, l_price_80, l_price_88, a_comment_60, 0, 0, SandyBrown);
if (l_error_120 != 0/* NO_ERROR */) Print("*2*2*ERROR SELL " + a_symbol_0 + " " + l_error_120 + " " + msgErrors(l_error_120));
else SetPropArrow_YZ(l_bid_132, 1, 0, SYMBOL_RIGHTPRICE, SandyBrown, DoubleToStr(l_ticket_116, 0));
if (l_ticket_116 != -1) {
if (ai_48 == 1) {
l_comment_148 = "SL" + l_ticket_116;
OrderSend(a_symbol_0, OP_BUYSTOP, l_lots_72, l_ask_124 + a_pips_52 * l_point_140, a_slippage_44, 0, 0, l_comment_148, l_ticket_116, 0, Black);
l_error_120 = GetLastError();
if (l_error_120 != 0/* NO_ERROR */) Print(" " + msgErrors(l_error_120));
OrderSend(a_symbol_0, OP_BUYSTOP, l_lots_72, l_ask_124 + a_pips_52 * l_point_140, a_slippage_44, 0, 0, l_comment_148, l_ticket_116, 0, Black);
l_error_120 = GetLastError();
if (l_error_120 != 0/* NO_ERROR */) Print(" " + msgErrors(l_error_120));
}
}
}
void OpenBuy(string a_symbol_0, int ai_unused_8, double ad_12, double a_pips_20, double a_pips_28, double ad_unused_36, int a_slippage_44, int ai_48, double a_pips_52, string a_comment_60, int ai_unused_68) {
double l_price_80;
double l_price_88;
string ls_unused_104;
string l_comment_112;
int l_ticket_128;
double l_lots_72 = ad_12;
double l_ask_132 = MarketInfo(a_symbol_0, MODE_ASK);
l_ask_132 = MarketInfo(a_symbol_0, MODE_ASK);
double l_bid_140 = MarketInfo(a_symbol_0, MODE_BID);
double l_point_148 = MarketInfo(a_symbol_0, MODE_POINT);
if (a_pips_20 != 0.0) l_price_80 = l_bid_140 - a_pips_20 * l_point_148;
else l_price_80 = 0;
if (a_pips_28 != 0.0) l_price_88 = l_ask_132 + a_pips_28 * l_point_148;
else l_price_88 = 0;
int l_ticket_124 = OrderSend(a_symbol_0, OP_BUY, l_lots_72, l_ask_132, a_slippage_44, l_price_80, l_price_88, a_comment_60, 0, 0, Red);
int l_error_120 = GetLastError();
if (l_error_120 != 0/* NO_ERROR */) Print("*1*1*ERROR BUY " + a_symbol_0 + " " + l_error_120 + " " + msgErrors(l_error_120));
else SetPropArrow_YZ(l_ask_132, 0, 0, SYMBOL_LEFTPRICE, Red, DoubleToStr(l_ticket_124, 0));
if (l_ticket_124 != -1) {
if (ai_48 == 1) {
l_comment_112 = "SL" + l_ticket_124;
l_ticket_128 = OrderSend(a_symbol_0, OP_SELLSTOP, l_lots_72, l_bid_140 - a_pips_52 * l_point_148, a_slippage_44, 0, 0, l_comment_112, l_ticket_124, 0, Black);
l_error_120 = GetLastError();
if (l_error_120 != 0/* NO_ERROR */) Print(" " + l_ticket_128 + " " + msgErrors(l_error_120));
l_ticket_128 = OrderSend(a_symbol_0, OP_SELLSTOP, l_lots_72, l_bid_140 - a_pips_52 * l_point_148, a_slippage_44, 0, 0, l_comment_112, l_ticket_124, 0, Black);
l_error_120 = GetLastError();
if (l_error_120 != 0/* NO_ERROR */) Print(" " + l_ticket_128 + " " + msgErrors(l_error_120));
}
}
}
void YZInitAllData() {
double l_stoplevel_12;
gsa_212[0] = "";
gsa_212[1] = "EURUSDm";
// gsa_212[2] = "GBPUSDm";
// gsa_212[3] = "USDCHFm";
// gsa_212[4] = "USDJPYm";
//gsa_212[5] = "EURJPYm";
//gsa_212[6] = "GBPJPYm";
//gsa_212[7] = "GBPCHFm";
//gsa_212[8] = "EURGBPm";
//gsa_212[9] = "AUDUSDm";
//gsa_212[10] = "USDCADm";
//gsa_212[11] = "NZDUSDm";
//gsa_212[12] = "GOLD";
for (int li_0 = 1; li_0 <= gcCur; li_0++) {
gia_216[li_0] = 0;
gia_224[li_0] = -1;
l_stoplevel_12 = MarketInfo(gsa_212[li_0], MODE_STOPLEVEL);
gda_432[li_0] = MarketInfo(gsa_212[li_0], MODE_DIGITS);
gda_228[li_0] = l_stoplevel_12 + 2.0;
gda_232[li_0] = l_stoplevel_12 + 10.0;
gda_236[li_0] = l_stoplevel_12 + 20.0;
gda_240[li_0] = l_stoplevel_12 + 30.0;
gia_216[li_0] = 1;
gda_436[li_0] = 30;
gia_440[li_0] = 7;
if (l_stoplevel_12 >= 10.0) gia_216[li_0] = 0;
}
gia_216[12] = 0;
gia_220[12] = 0;
gia_216[1] = 1;
gia_216[2] = 1;
gia_216[3] = 1;
gia_216[4] = 1;
}
void YZБлокПринятияРешения(int ai_0, string as_4) {
double ld_12;
double ld_20;
double ld_28;
double ld_36;
int li_44;
bool li_48;
double ld_52;
bool li_60;
if (gda_336[ai_0] != 0.0) {
gia_416[ai_0] = 1;
gsa_424[ai_0] = "AS M1";
}
if (gda_340[ai_0] != 0.0) {
gia_420[ai_0] = 1;
gsa_428[ai_0] = "AB M1";
}
if (gda_336[ai_0] != 0.0 && gda_344[ai_0] != 0.0) {
gia_416[ai_0] = 2;
gsa_424[ai_0] = "AS M1M5";
}
if (gda_340[ai_0] != 0.0 && gda_348[ai_0] != 0.0) {
gia_420[ai_0] = 2;
gsa_428[ai_0] = "AB M1M5";
}
if (gda_336[ai_0] != 0.0 && gda_344[ai_0] != 0.0 && gda_352[ai_0] != 0.0) {
gia_416[ai_0] = 3;
gsa_424[ai_0] = "AS M1M5M15";
}
if (gda_340[ai_0] != 0.0 && gda_348[ai_0] != 0.0 && gda_356[ai_0] != 0.0) {
gia_420[ai_0] = 3;
gsa_428[ai_0] = "AB M1M5M15";
}
if (gda_336[ai_0] != 0.0 && gda_344[ai_0] != 0.0 && gda_352[ai_0] != 0.0 && gda_360[ai_0] != 0.0) {
gia_416[ai_0] = 4;
gsa_424[ai_0] = "AS M1M5M15M30";
}
if (gda_340[ai_0] != 0.0 && gda_348[ai_0] != 0.0 && gda_356[ai_0] != 0.0 && gda_364[ai_0] != 0.0) {
gia_420[ai_0] = 4;
gsa_428[ai_0] = "AB M1M5M15M30";
}
if (gda_336[ai_0] != 0.0 && gda_344[ai_0] != 0.0 && gda_352[ai_0] != 0.0 && gda_360[ai_0] != 0.0 && gda_368[ai_0] != 0.0) {
gia_416[ai_0] = 5;
gsa_424[ai_0] = "AS M1M5M15M30H1";
}
if (gda_340[ai_0] != 0.0 && gda_348[ai_0] != 0.0 && gda_356[ai_0] != 0.0 && gda_364[ai_0] != 0.0 && gda_372[ai_0] != 0.0) {
gia_420[ai_0] = 5;
gsa_428[ai_0] = "AB M1M5M15M30H1";
}
if (gda_336[ai_0] != 0.0 && gda_344[ai_0] != 0.0 && gda_352[ai_0] != 0.0 && gda_360[ai_0] != 0.0 && gda_368[ai_0] != 0.0 && gda_376[ai_0] != 0.0) {
gia_416[ai_0] = 6;
gsa_424[ai_0] = "AS M1M5M15M30H1H4";
}
if (gda_340[ai_0] != 0.0 && gda_348[ai_0] != 0.0 && gda_356[ai_0] != 0.0 && gda_364[ai_0] != 0.0 && gda_372[ai_0] != 0.0 && gda_380[ai_0] != 0.0) {
gia_420[ai_0] = 6;
gsa_428[ai_0] = "AB M1M5M15M30H1H4";
}
if (gda_336[ai_0] != 0.0 && gda_344[ai_0] != 0.0 && gda_352[ai_0] != 0.0 && gda_360[ai_0] != 0.0 && gda_368[ai_0] != 0.0 && gda_376[ai_0] != 0.0 && gda_384[ai_0] != 0.0) {
gia_416[ai_0] = 7;
gsa_424[ai_0] = "AS M1M5M15M30H1H4D1";
}
if (gda_340[ai_0] != 0.0 && gda_348[ai_0] != 0.0 && gda_356[ai_0] != 0.0 && gda_364[ai_0] != 0.0 && gda_372[ai_0] != 0.0 && gda_380[ai_0] != 0.0 && gda_388[ai_0] != 0.0) {
gia_420[ai_0] = 7;
gsa_428[ai_0] = "AB M1M5M15M30H1H4D1";
}
if (gda_336[ai_0] != 0.0 && gda_344[ai_0] != 0.0 && gda_352[ai_0] != 0.0 && gda_360[ai_0] != 0.0 && gda_368[ai_0] != 0.0 && gda_376[ai_0] != 0.0 && gda_384[ai_0] != 0.0 &&
gda_392[ai_0] != 0.0) {
gia_416[ai_0] = 8;
gsa_424[ai_0] = "AS M1M5M15M30H1H4D1W1";
}
if (gda_340[ai_0] != 0.0 && gda_348[ai_0] != 0.0 && gda_356[ai_0] != 0.0 && gda_364[ai_0] != 0.0 && gda_372[ai_0] != 0.0 && gda_380[ai_0] != 0.0 && gda_388[ai_0] != 0.0 &&
gda_396[ai_0] != 0.0) {
gia_420[ai_0] = 8;
gsa_428[ai_0] = "AB M1M5M15M30H1H4D1W1";
}
if (gda_336[ai_0] != 0.0 && gda_344[ai_0] != 0.0 && gda_352[ai_0] != 0.0 && gda_360[ai_0] != 0.0 && gda_368[ai_0] != 0.0 && gda_376[ai_0] != 0.0 && gda_384[ai_0] != 0.0 &&
gda_392[ai_0] != 0.0 && gda_400[ai_0] != 0.0) {
gia_416[ai_0] = 9;
gsa_424[ai_0] = "AS M1M5M15M30H1H4D1W1MN1";
}
if (gda_340[ai_0] != 0.0 && gda_348[ai_0] != 0.0 && gda_356[ai_0] != 0.0 && gda_364[ai_0] != 0.0 && gda_372[ai_0] != 0.0 && gda_380[ai_0] != 0.0 && gda_388[ai_0] != 0.0 &&
gda_396[ai_0] != 0.0 && gda_404[ai_0] != 0.0) {
gia_420[ai_0] = 9;
gsa_428[ai_0] = "AB M1M5M15M30H1H4D1W1MN1";
}
if (OrdersTotal() <= 9) {
if (gia_420[ai_0] >= 4) {
Print(" BUY " + as_4 + " " + gsa_428[ai_0] + " " + gia_420[ai_0]);
ld_12 = 0.1;
ld_20 = 0;
ld_28 = 10.0;
if (gia_420[ai_0] == 4) ld_28 = 10.0;
if (gia_420[ai_0] == 5) ld_28 = 12.0;
if (gia_420[ai_0] == 6) ld_28 = 14.0;
if (gia_420[ai_0] == 7) ld_28 = 16.0;
if (gia_420[ai_0] == 8) ld_28 = 20.0;
if (gia_420[ai_0] == 9) ld_28 = 25.0;
if (gia_420[ai_0] == 10) ld_28 = 30;
ld_36 = 0;
li_44 = gia_440[ai_0];
li_48 = FALSE;
ld_52 = 0;
li_60 = FALSE;
OpenBuy(as_4, ai_0, ld_12, ld_20, ld_28, ld_36, li_44, li_48, ld_52, gsa_428[ai_0], li_60);
crear_bs(ai_0);
}
if (gia_416[ai_0] >= 4) {
Print(" SELL " + as_4 + " " + gsa_424[ai_0] + " " + gia_416[ai_0]);
ld_12 = 0.1;
ld_20 = 0;
ld_28 = 10.0;
if (gia_416[ai_0] == 4) ld_28 = 10.0;
if (gia_416[ai_0] == 5) ld_28 = 12.0;
if (gia_416[ai_0] == 6) ld_28 = 14.0;
if (gia_416[ai_0] == 7) ld_28 = 16.0;
if (gia_416[ai_0] == 8) ld_28 = 20.0;
if (gia_416[ai_0] == 9) ld_28 = 25.0;
if (gia_416[ai_0] == 10) ld_28 = 30.0;
ld_36 = 0;
li_44 = gia_440[ai_0];
li_48 = FALSE;
ld_52 = 0;
li_60 = FALSE;
OpenSell(as_4, ai_0, ld_12, ld_20, ld_28, ld_36, li_44, li_48, ld_52, gsa_424[ai_0], li_60);
crear_bs(ai_0);
}
}
}
void crear_bs(int ai_0) {
gda_340[ai_0] = 0;
gda_412[0] = 0;
gda_336[ai_0] = 0;
gda_408[0] = 0;
gda_348[ai_0] = 0;
gda_412[0] = 0;
gda_344[ai_0] = 0;
gda_408[0] = 0;
gda_356[ai_0] = 0;
gda_412[0] = 0;
gda_352[ai_0] = 0;
gda_408[0] = 0;
gda_364[ai_0] = 0;
gda_412[0] = 0;
gda_360[ai_0] = 0;
gda_408[0] = 0;
gda_372[ai_0] = 0;
gda_412[0] = 0;
gda_368[ai_0] = 0;
gda_408[0] = 0;
gda_380[ai_0] = 0;
gda_412[0] = 0;
gda_376[ai_0] = 0;
gda_408[0] = 0;
gda_388[ai_0] = 0;
gda_412[0] = 0;
gda_384[ai_0] = 0;
gda_408[0] = 0;
gda_396[ai_0] = 0;
gda_412[0] = 0;
gda_392[ai_0] = 0;
gda_408[0] = 0;
gda_404[ai_0] = 0;
gda_412[0] = 0;
gda_400[ai_0] = 0;
gda_408[0] = 0;
gsa_428[ai_0] = "";
gsa_424[ai_0] = "";
gia_416[ai_0] = 0;
gia_420[ai_0] = 0;
}
void YZЧтениеИндикаторов(int ai_0, string as_4) {
YZ_ASCTrend(ai_0, as_4);
}
void YZ_ASCTrend(int ai_0, string a_symbol_4) {
double l_icustom_12 = iCustom(a_symbol_4, PERIOD_M1, "ASCTrend1sig_noSound", 3, 300, 0, 0);
gda_336[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_M1, "ASCTrend1sig_noSound", 3, 300, 1, 0);
gda_340[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_M5, "ASCTrend1sig_noSound", 3, 300, 0, 0);
gda_344[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_M5, "ASCTrend1sig_noSound", 3, 300, 1, 0);
gda_348[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_M15, "ASCTrend1sig_noSound", 3, 300, 0, 0);
gda_352[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_M15, "ASCTrend1sig_noSound", 3, 300, 1, 0);
gda_356[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_M30, "ASCTrend1sig_noSound", 3, 300, 0, 0);
gda_360[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_M30, "ASCTrend1sig_noSound", 3, 300, 1, 0);
gda_364[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_H1, "ASCTrend1sig_noSound", 3, 310, 0, 0);
gda_368[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_H1, "ASCTrend1sig_noSound", 3, 300, 1, 0);
gda_372[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_H4, "ASCTrend1sig_noSound", 3, 300, 0, 0);
gda_376[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_H4, "ASCTrend1sig_noSound", 3, 300, 1, 0);
gda_380[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_D1, "ASCTrend1sig_noSound", 3, 300, 0, 0);
gda_384[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_D1, "ASCTrend1sig_noSound", 3, 300, 1, 0);
gda_388[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_W1, "ASCTrend1sig_noSound", 3, 300, 0, 0);
gda_392[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_W1, "ASCTrend1sig_noSound", 3, 300, 1, 0);
gda_396[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_MN1, "ASCTrend1sig_noSound", 3, 300, 0, 0);
gda_400[ai_0] = l_icustom_12;
l_icustom_12 = iCustom(a_symbol_4, PERIOD_MN1, "ASCTrend1sig_noSound", 3, 300, 1, 0);
gda_404[ai_0] = l_icustom_12;
} ну и нахрена такие сложности тест не работает нифига не понятно!