![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
NoName |
![]()
Сообщение
#231
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Перед else одна скобка } лишняя!
|
leonid553 |
![]()
Сообщение
#232
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Не думаю !
У меня на эту скобку - свои соображения имеются. Завтра будем собирать кусочки в один - общий код, и там эта скобка, надеюсь, будет к месту! |
leonid553 |
![]()
Сообщение
#233
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Теперь обьединим наши изыскания в общий код и посмотрим - что получилось!
Код ////+------------------------------------------------------------------+ //|Stochastic_Env.mq4.mq4 //| leonid553 & Co //| http://www.tradersforum.net.ru/ //+------------------------------------------------------------------+ #property copyright "leonid553 & Co" #property link "http://www.tradersforum.net.ru/" //---- input parameters--------- extern int MagicNum = 294; extern int MagicLock = 295; //----------------------------------- extern int Stochastic_period=8; extern int Env_period=25; extern int Env_shift=1; extern double Env_deviation=20; //------------------------------ extern int TP=30; extern int SL=30; extern int m=20; extern int TP_lock=30; extern int SL_lock=30; extern double Lot=0.1; extern int Slippage=3; //------------------- int ticket; //********************************************************************* //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- if (Env_deviation==0) Env_deviation=0.1; //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { double Stochastic_array[49]; //заполняем массив значениями Stochastic-----------------] int i=0; while (i<50) { Stochastic_array[i]= iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, i); i++; } //------------------------------------------------------ ArraySetAsSeries(Stochastic_array,true); // Цепляем на стохастик конверт - Envelope : double En0_low=iEnvelopesOnArray(Stochastic_array,0,Env_period,0,Env_shift,Env_deviation,MODE_LOWER,0); double En0_up=iEnvelopesOnArray(Stochastic_array,0,Env_period,0,Env_shift,Env_deviation,MODE_UPPER,0); double Stochastic_0=iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, 0); double Stochastic_1=iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, 1); //--------------------------------------------------------------------------- for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUY) // ---длинная позиция открылась---------- { if OrderProfit() < ((-1)*m) // - если убыток позиции превышает "m", то открываем лок SELL { ticket=OrderSend(Symbol(),1,Lot,Bid,Slippage, Bid+SL_lock*Point, Bid-TP_lock*Point, NULL, MagicLock, 0, Aqua); } } else /*иначе, - если открыта короткая позиция, и убыток превышает " " пунктов, то открываем локирующую позицию BUY :*/ { ticket=OrderSend(Symbol(),0,Lot,Ask,Slippage,Bid-ticket=OrderSend(Symbol (),0,Lot,Ask,Slippage,Bid-SL_lock*Point,Ask+TP_lock*Point,NULL,MagicLock, 0, Aqua); if (ticket<0) { Print("Ошибка открытия ордера BUY #", GetLastError()); return (0); } } //----------------------------------------------------------------------------------- return(0); } //===== Ищем возможность войти в рынок ========================================================= int Orders=OrdersTotal (); //получаем кол-во открытых ордеров if (Orders==0) //если нет открытых ордеров { //проверяем условие на покупку------------- if ( (Stochastic_1<En0_low) && (Stochastic_0>En0_low) ) {//-------ПОКУПАЕМ------------------------- ticket=OrderSend(Symbol(),0,Lot,Ask,Slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,CLR_NONE); if (ticket<0) { Print("Ошибка открытия ордера BUY #", GetLastError()); return (0); } } //-------проверяем условие на продажу if ( (Stochastic_1>En0_up) && (Stochastic_0<En0_up)) { //--------ПРОДАЕМ---------------- ticket=OrderSend(Symbol(),1,Lot,Bid,Slippage,Bid+SL*Point,Bid-TP*Point,NULL,0,0,CLR_NONE); if (ticket<0) { Print("Ошибка открытия ордера SELL #", GetLastError()); return (0); } } //------------------------------------------------------------------ } //************************************************************************ //---- return(0); } |
leonid553 |
![]()
Сообщение
#234
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
И получаем при компилировании :
'i' - variable already defined вот здесь : for (int i=0; i<OrdersTotal(); i++) { Видимо - со скобками надо разобраться... |
leonid553 |
![]()
Сообщение
#235
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Попробуем заменить "i" на "j" - т.к. "i" у нас уже задействовано.... ранеее
Тогда получаем : '\end_of_program' - ending bracket '}' expected '\end_of_program' - unbalanced left parenthesis |
leonid553 |
![]()
Сообщение
#236
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Ещё раз перепишем со всеми исправлениями :
Код ///+------------------------------------------------------------------+ //|Stochastic_Env.mq4.mq4 //| leonid553 & Co //| http://www.tradersforum.net.ru/ //+------------------------------------------------------------------+ #property copyright "leonid553 & Co" #property link "http://www.tradersforum.net.ru/" //---- input parameters--------- extern int MagicNum = 294; extern int MagicLock = 295; //----------------------------------- extern int Stochastic_period=8; extern int Env_period=25; extern int Env_shift=1; extern double Env_deviation=20; //------------------------------ extern int TP=30; extern int SL=30; extern int m=20; extern int TP_lock=30; extern int SL_lock=30; extern double Lot=0.1; extern int Slippage=3; //------------------- int ticket; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- if (Env_deviation==0) Env_deviation=0.1; //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //********************************************************************* double Stochastic_array[49]; //заполняем массив значениями Stochastic-----------------] int i=0; while (i<50) { Stochastic_array[i]= iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, i); i++; } //------------------------------------------------------ ArraySetAsSeries(Stochastic_array,true); // []Цепляем на стохастик конверт - Envelope : double En0_low=iEnvelopesOnArray(Stochastic_array,0,Env_period,0,Env_shift,Env_deviation,MODE_LOWER,0); double En0_up=iEnvelopesOnArray(Stochastic_array,0,Env_period,0,Env_shift,Env_deviation,MODE_UPPER,0); double Stochastic_0=iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, 0); double Stochastic_1=iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, 1); ========================================================= //===== Ищем возможность войти в рынок int Orders=OrdersTotal (); //[color=#3333FF]получаем кол-во открытых ордеров[/color] if (Orders==0) //[color=#3333FF]если нет открытых ордеров[/color] { //проверяем условие на покупку------------- if ( (Stochastic_1<En0_low) && (Stochastic_0>En0_low) ) {//---------ПОКУПАЕМ------------- ticket=OrderSend(Symbol(),0,Lot,Ask,Slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,CLR_NONE); if (ticket<0) { Print("Ошибка открытия ордера BUY #", GetLastError()); return (0); } } //--------проверяем условие на продажу if ( (Stochastic_1>En0_up) && (Stochastic_0<En0_up)) {//------ПРОДАЕМ-------- ticket=OrderSend(Symbol(),1,Lot,Bid,Slippage,Bid+SL*Point,Bid-TP*Point,NULL,0,0,CLR_NONE); if (ticket<0) { Print("Ошибка открытия ордера SELL #", GetLastError()); return (0); } } //------------------------------------------------------------------ } //************************************************************************ return(0); // } //---------------------ЛОКИРОВАНИЕ--------------------------- for (int j=0; j<OrdersTotal(); j++) // если есть открытая позиция { if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUY) // ---длинная позиция открыта---------- { if OrderProfit() < ((-1)*m) // - если убыток позиции превышает "m", то открываем лок SELL { ticket=OrderSend(Symbol(),1,Lot,Bid,Slippage, Bid+SL_lock*Point, Bid-TP_lock*Point, NULL, MagicLock, 0, Aqua); } } else /*иначе, - если открыта короткая позиция, и убыток превышает "m" пунктов, то открываем локирующую позицию BUY :*/ { ticket=OrderSend(Symbol(),0,Lot,Ask,Slippage,Bid-ticket=OrderSend(Symbol (),0,Lot,Ask,Slippage,Bid-SL_lock*Point,Ask+TP_lock*Point,NULL,MagicLock, 0, Aqua); if (ticket<0) { Print("Ошибка открытия ордера BUY #", GetLastError()); return (0); } } } //----------------------------------------------------------------------------------- return(0); } Компиллируем. Получаем одну ошибку : '\end_of_program' - ending bracket '}' expected C:\Program Files\Forex Trade Station\experts\rrrrrrrrrrrrrrrrrr.mq4 (135, 2) Самая последняя скобка ..... |
leonid553 |
![]()
Сообщение
#237
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Код ///+------------------------------------------------------------------+ //|Stochastic_Env.mq4.mq4 //| leonid553 & Co //| http://www.tradersforum.net.ru/ //+------------------------------------------------------------------+ #property copyright "leonid553 & Co" #property link "http://www.tradersforum.net.ru/" //---- input parameters--------- extern int MagicNum = 294; extern int MagicLock = 295; //----------------------------------- extern int Stochastic_period=8; extern int Env_period=25; extern int Env_shift=1; extern double Env_deviation=20; //------------------------------ extern int TP=30; extern int SL=30; extern int m=20; extern int TP_lock=30; extern int SL_lock=30; extern double Lot=0.1; extern int Slippage=3; //------------------- int ticket; //********************************************************************* //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- if (Env_deviation==0) Env_deviation=0.1; //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { double Stochastic_array[49]; //заполняем массив значениями Stochastic-----------------] int i=0; while (i<50) { Stochastic_array[i]= iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, i); i++; } //------------------------------------------------------ ArraySetAsSeries(Stochastic_array,true); // []Цепляем на стохастик конверт - Envelope : double En0_low=iEnvelopesOnArray(Stochastic_array,0,Env_period,0,Env_shift,Env_deviation,MODE_LOWER,0); double En0_up=iEnvelopesOnArray(Stochastic_array,0,Env_period,0,Env_shift,Env_deviation,MODE_UPPER,0); double Stochastic_0=iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, 0); double Stochastic_1=iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, 1); //]===== Ищем возможность войти в рынок ]========================================================= int Orders=OrdersTotal (); //[color=#3333FF]получаем кол-во открытых ордеров[/color] if (Orders==0) //[color=#3333FF]если нет открытых ордеров[/color] { //проверяем условие на покупку-------------[/ if ( (Stochastic_1<En0_low) && (Stochastic_0>En0_low) ) { ticket=OrderSend(Symbol(),0,Lot,Ask,Slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,CLR_NONE); if (ticket<0) { Print("Ошибка открытия ордера BUY #", GetLastError()); return (0); } } //[]--------проверяем условие на продажу if ( (Stochastic_1>En0_up) && (Stochastic_0<En0_up)) { ticket=OrderSend(Symbol(),1,Lot,Bid,Slippage,Bid+SL*Point,Bid-TP*Point,NULL,0,0,CLR_NONE); if (ticket<0) { Print("Ошибка открытия ордера SELL #", GetLastError()); return (0); } } } //************************************************************************ return(0); //} //------------------------ЛОКИРОВАНИЕ------------------ int total = OrdersTotal(); // количество открытых ордеров for(int j = 0; j < total; j++) // //for (int j=0; j<OrdersTotal(); j++) { if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUY) // ЕСЛИ длинная позиция открылась---------- { if (OrderProfit() < ((-1)*m) ) // - если убыток позиции превышает "m", то открываем лок SELL { ticket=OrderSend(Symbol(),1,Lot,Bid,Slippage, Bid+SL_lock*Point, Bid-TP_lock*Point, NULL, MagicLock, 0, Aqua); } } } } return(0);} -- Вот до сих пор все скомпиллировалось! ![]() Осталось залокировать позицию Селл ..... |
wer |
![]()
Сообщение
#238
|
Группа: Активный участник Сообщений: 16 Регистрация: 8.3.2007 Из: BY Пользователь №: 1 307 Спасибо сказали: 0 раз(а) ![]() |
..И ТАК..
..целый месяц..тестировал на демо счетах..данную.тактику...ФИБО...АЛЬПАРИ....FX CLUB.. ..к сожалению всё входы по сигналам...не было возможности реализовать.....но тем не менее..результаты вполне радуют.. итого...нач депозиты по 1000 лот 0.1 торговля..основной сигнал подход st к env..па пересечение ..торговля отложеными ордерами...по 20 пунктов от цены ( пользовался простейшими скриптами) ..t/p 25 s/l 40 ..( да к сожалению стоп лосс больше) ..подтвердающие сигналы ( но не обязательные)..zup 60 ..fx5_divergense ..торговля по 12 парам.. РЕЗУЛЬТАТ ..ФИБО ..Gross Profit: 727.55 Gross Loss: 397.40 Total Net Profit: 330.15 АЛЬПАРИ Gross Profit: 682.15 Gross Loss: 383.55 Total Net Profit: 298.60 ФХ Gross Profit: 715.60 Gross Loss: 400.5 Total Net Profit: 315.10 ..о самое главное...во время новостей...лучше не торговать..то данной стратегии...т.к...как говориться "бабушка надвое сказала".. . результатом доволен ..но работать...работать .... и раборать..ДИСЦИПЛИНА И ОПЫТ решает всё ..реал ..доверю..только наверно этой тактике.. ...особое СПАСИБО..и благодарности...из БЕЛОРУСИ Леониду..И ВСЕМ КТО ПРИНИМАЕТ УЧАСТИЕ...В ДАННОМ ПРОЕКТЕ ..IVSAL..ОСОБОЕ..Т.К. ПОКАЗАЛ..ВЕТКУ. ..ВСЕМ РЕСПЕКТ (что то я..эмоционально закончил.. ![]() Эскизы прикрепленных изображений |
ivsal |
![]()
Сообщение
#239
|
Группа: Активный участник Сообщений: 35 Регистрация: 21.11.2006 Пользователь №: 1 030 Спасибо сказали: 0 раз(а) ![]() |
Вот люди торгуют регрессией.
Леонид ей занимался, может еще кому интересно будет: http://forum.liteforex.net/viewtopic.php?f=4&t=9562 исправьте только Народ, в тексте индикатора сделайте такое изменение: double _K_L.Dev.min = 1.73; заменить на: extern double _K_L.Dev.min = 2.73; При этом будет возможность подстраивать в свойствах объекта линейный канал под высоковолатильные валюты без перекомпиляции индикатора. Возможно, подстройка не понадобится, но если вдруг что - следующие значения для _K_L.Dev.min - "3.37" и "3.73" Прикрепленные файлы ![]() |
fortreid |
![]()
Сообщение
#240
|
![]() Группа: Активный участник Сообщений: 7 Регистрация: 29.6.2007 Пользователь №: 1 408 Спасибо сказали: 0 раз(а) ![]() |
Случайно поставил в одно окно два индикатора - и крайне удивился - таких любопытных и достоверных сигналов (просмотрел по истории ) - я давно не наблюдал! EUR/USD, H1, текущая ситуация. Для начала посмотрите картинку - вход - пересечение стохастиком границы канала сверху вниз или сннизу вверх, т.е. снаружи внутрь. Первая цель - средняя линия канала. Для EUR/USD, H1 (M30) : 1.Стохастик 13 3 3 - но Вы возьмите любой другой к кот. привыкли 2. Envelopes : период =50-55 сдвиг =1 отклонение =0.15-0.2 Если средней линии нет - то её нужно добавить - поз. УРОВНИ - ДОБАВИТЬ 0.5 Поставьте ко всему этому SHI_SilverTrendSig!Порядок:длинная-появилась красная точка-первый сигнал!стохастик пересек енвелопес-вход в рынок!Короткая с точностью наоборот!Только такая последовательность и профит на мой взгляд всегда на 100%! Прикрепленные файлы ![]() |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 24.4.2025, 4:16 |