Перейти к содержанию
Форекс Форум трейдеров Академии «MasterForex-V»

MTC ( советники ) автоматизация


Рекомендуемые сообщения

YZ_SOVETNIK_ASCTREND.rarДобрый день!

 

предлагаю вести раздел - все что касается автоматизации

Советники скрипты и прочее

 

выкладываю простого советника

торгующего на одном индикаторе 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"

Ссылка на комментарий
Поделиться на другие сайты

YZ_SOVETNIK_ASCTREND.rarДобрый день!

 

 

выкладываю простого советника

торгующего на одном индикаторе ASCTrend

 

советник торгуют по 10 парам

там где возникают сигналы

 

...

 

Сигналы часто возникают ложные

поэтомо применяется метод сложениния сигналов по всем ТФ

cигналы должны поступить в один момент

 

M1 M5 M15 M30 - 1-й тейкпрофтит = 10

M1 M5 M15 M30 H1- 2-й тейкпрофтит = 12

M1 M5 M15 M30 H1 H4 - 3-й тейкпрофтит = 14

M1 M5 M15 M30 H1 H4 D1 4-й тейкпрофтит = 16

M1 M5 M15 M30 H1 H4 D1 W1 5-й тейкпрофтит = 20

M1 M5 M15 M30 H1 H4 D1 W1 MN1 6-й тейкпрофтит = 30

 

 

предложения по совершенствованию принимаются

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Сигналы часто возникают ложные

поэтомо применяется метод сложениния сигналов по всем ТФ

cигналы должны поступить в один момент

 

M1 M5 M15 M30 - 1-й тейкпрофтит = 10

M1 M5 M15 M30 H1- 2-й тейкпрофтит = 12

M1 M5 M15 M30 H1 H4 - 3-й тейкпрофтит = 14

M1 M5 M15 M30 H1 H4 D1 4-й тейкпрофтит = 16

M1 M5 M15 M30 H1 H4 D1 W1 5-й тейкпрофтит = 20

M1 M5 M15 M30 H1 H4 D1 W1 MN1 6-й тейкпрофтит = 30

предложения по совершенствованию принимаются

А про остальные параметры не раскажите? Например чтоб открывал только один ордер? Или как поставить стоп.Рамер лота.

извините за навные вопросы, порсто к советникам питаю слабость у самого дисциплины не хватает.

Ссылка на комментарий
Поделиться на другие сайты

А про остальные параметры не раскажите? Например чтоб открывал только один ордер? Или как поставить стоп.Рамер лота.

извините за навные вопросы, порсто к советникам питаю слабость у самого дисциплины не хватает.

 

этот советник просто открывает по сигналам от индикатора ASCTrend

один ордер он не открывает размер лота считается автоматом

стоп не ставит только если будет безубыток двигает SL

пока идут модернизации и модификации

и в общем то идея советника в том что бы выбрать брокера

Результаты вы можете оценить на странице HTTP://FOREX-SSV.NAROD.RU

не советую ставить на реал! я пробовал на свой реал ставить увы часто ложно ставит

 

пока думаю убрать у него некоторые пары!

так как на них много висяков образуется

Ссылка на комментарий
Поделиться на другие сайты

на ***реклама*** в архивчике старых советников есть песик КИКА. торгующий тоже по тому же почти индюку. Возьми оттуда лучшее. Включи в свой обязательно стоп. Мне тот нравится больше чем твой, но в твоем(как ты говоришь, сам пока не проверял) есть фильтр по Тф. Вот еще бы туда включить фильтр на пересечении 21-233МА и на индикаторое выставить фильтр риска в 8 или 10. Тогда можно его ставить на М5.Или даже на М1. Но опять же стоп нужен. Нужен трейлинг, нужен выбор величины лота. И ОЧЕ НЬ важно понятное описание настроек советника. А то сейчас мотришь и гадаешь - а что эта функция знчит.

Надеюсь если доработаешь немного своего песика пишлешь мне его.

Да, если КИКи не будет не том сайте, я тебе его вышлю.

 

С уважением муцера

Ссылка на комментарий
Поделиться на другие сайты

  • 2 года спустя...
скажите может у кого есть советник,который удалял бы отложенные ордера при достижении ценой определенного уровня?
Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

С некоторых пор пришел к выводу, что, например, для меня более целесообразна автоматическая (в т.ч. "портфельная") торговля! Эксперты работают без эмоций, и при моем скромном опыте такая торговля оказывается более выгодной, чем "вручную" !

К сож. мой стаж на форексе - чуть более полутора лет, а вникать в MQL4 я начал всего лишь несколько месяцев назад.

Поэтому многие изложенные мысли могут показаться наивными. Но я их не навязываю, - а всего лишь предлагаю к рассмотрению всем, кому интересно.

 

Mafioso Trading Robot http://depositfiles.com/files/oo4aq60da

 

ForexRobotTrader2008 http://depositfiles.com/files/kprcwhg6e

 

FapTurbo http://depositfiles.com/files/qdkiburnf

 

FOREX.Auto-Scalper.FOREX.Trading.Robot http://depositfiles.com/files/zho2ik4sr

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...
  • 3 недели спустя...
Доброго времени суток! Не подскажите, у кого-нить есть автомат по этой теме - "Система на основе has и sloop" http://forum.masterforex-v.org/index.php?s...t=0#entry424275
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Доброго дня всем! :)

 

Ну здесь-то точно кто-нибудь знает программы анализа котировок.

Дело вот в чем, экспортировал из mt4 котировки в csv файл, мне нужно проанализировать эти данные и построить отчет.

 

Под анализом данных подразумеваю примерно следующие: взять данные за время от дд/мм/гггг hh:mm до дд1/мм1/гггг1 hh1:mm1 определить максимально отклонение от котировки N за взятый период. Или такой анализ данных: просчитать по приведенным данным сделки и вывести отчет по ним (тестер стратегий не подошел т.к. там только macd и MA, а у меня числовой, т.е. конкретный критерий совершения сделок [если котировка N>=котировки M значит покупать, иначе продавать] ) примерно таким образом.

Но хочу заметить, что мне не нужно автоматически совершать сделки в реальном времени, только на истории, причем представленной не графически а числами, и работать собственно с числами и датами. Пытался открыть в Excel, не открывает, пишет строк слишком много (файл весит 17 мб). Пришлось применят свои познания в delphi, но тот тоже не в восторге от 1000000 загружемых строк, к тому же очень ругаеться, когда пытаюсь создать отчет. Короче, кто знает программу которая анализирует данные котировок не графически, а математически, причем может проводить анализ по заранее определенному алгоритму пользователя? Скажите как она называеться, а я ее найду в google :)))

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...
Jonny88888, а какой билд Вы используете? Я в 225 вообще не могу импортировать и экспортировать - создает нулевые по размеру файлы. Excel действительно не пойдет, надо частями ставить по 65000 строк на несколько листов. Но он тоже будет виснуть от таких объемов. Но править удобно в Excel. Я хочу загнать тиковые котировки - их в неделю около 90000, а за год около 5 млн. будет!!!
Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Alexander7777 Jonny88888, а какой билд Вы используете? Я в 22...... 09 Октябрь 2009 - 12:54

 

-------------------------------------------------------------------------------------------------------------

Привет!

Я не совсем понимаю ваши проблемы и конечные цели, но работаю с пакетом программ по сбору и последующей обработке реальновременных данных в процессе бурения скважин. Имеется прога - Редактор таблиц в которой можно править данные различными способами, в том числе копировать в Ехеl и обратно. Вообще имеется возможность порезать и склеить и посмотреть в графическом виде, что получится.

При регистрации шаг - 1сек и 10 сек. По количеству строк вроде ограничений нет, но не уверен... Если интересует, могу заслать...

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

YZ_SOVETNIK_ASCTREND.rarДобрый день!

 

предлагаю вести раздел - все что касается автоматизации

Советники скрипты и прочее

 

выкладываю простого советника

торгующего на одном индикаторе 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"

дико грузит комп, ддр2 2 гб. невозможно работать, в чем же дело

Ссылка на комментарий
Поделиться на другие сайты

YZ_SOVETNIK_ASCTREND.rarДобрый день!

 

предлагаю вести раздел - все что касается автоматизации

Советники скрипты и прочее

 

выкладываю простого советника

торгующего на одном индикаторе 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;

} ну и нахрена такие сложности тест не работает нифига не понятно!

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...