советник (Expert) на основе АМА - страница 2 12 Новый комментарий asisdes 2009.09.04 06:41 #11 народ помогите разобраться с логикой не могу ВТОРОЙ вопрос решить "2. Не точно выполняются условия." вот навоял, но както мне кажется что не правильно : может кто помочь с логикой? // Торговые критерии MA_1_t=iCustom(Symbol(),0,"AMA_optimized",1,1); // МА_1 MA_2_t=iCustom(Symbol(),0,"AMA_optimized",2,1); // МА_2 MA_3_t=iCustom(Symbol(),0,"AMA_optimized",1,2); // МА_2 MA_4_t=iCustom(Symbol(),0,"AMA_optimized",2,2); // МА_4 //---------------------------------------------------------------- 5.1 БЛОК ФЛАГА static datetime New_Time; bool New_Bar; bool wayUP, wayDOWN; if(New_Time!=Time[0]) { New_Time=Time[0]; New_Bar=true; if (MA_1_t!=0) wayUP=true; wayDOWN=false; if (MA_2_t!=0) wayDOWN=true; wayUP=false; } else { New_Bar=false;} //---------------------------------------------------------------- 5.1 БЛОК ФЛАГА if (MA_1_t!=0 && MA_3_t==0 && wayDOWN==true) // Если разница между { // if (New_Bar==true) Opn_B=true; New_Bar=false; // Критерий откр. Buy //Cls_S=true; // Критерий закр. Sell } if (MA_2_t!=0 && MA_4_t==0 && wayUP==true) // Если разница между { // if (New_Bar==true) Opn_S=true; New_Bar=false; // Критерий откр. Sell //Cls_B=true; // Критерий закр. Buy } //--------------------------------------------------------------- 6 -- помогите, а то дельше продвигаться не могу. На логике застрял Помогите найти ошибку Выполнение функции Помогите с массивами. art 2009.09.04 09:12 #12 asisdes >>: народ помогите разобраться с логикой не могу ВТОРОЙ вопрос решить "2. Не точно выполняются условия." вот навоял, но както мне кажется что не правильно : может кто помочь с логикой? помогите, а то дельше продвигаться не могу. На логике застрял / Торговые критерии MA_1_t=iCustom(Symbol(),0,"AMA_optimized",1,1); // МА_1 MA_2_t=iCustom(Symbol(),0,"AMA_optimized",2,1); // МА_2 MA_3_t=iCustom(Symbol(),0,"AMA_optimized",1,2); // МА_2 MA_4_t=iCustom(Symbol(),0,"AMA_optimized",2,2); // МА_4 //---------------------------------------------------------------- 5.1 БЛОК ФЛАГА static datetime New_Time; bool New_Bar; bool wayUP, wayDOWN; if(New_Time!=Time[0]) { New_Time=Time[0]; New_Bar=true; if (MA_1_t!=0) {wayUP=true; wayDOWN=false;} if (MA_2_t!=0) {wayDOWN=true; wayUP=false;} } else { New_Bar=false;} //---------------------------------------------------------------- 5.1 БЛОК ФЛАГА if (MA_1_t!=0 && MA_3_t==0 && wayDOWN==true) // Если разница между { // if (New_Bar==true) { Opn_B=true; New_Bar=false; } // Критерий откр. Buy //Cls_S=true; // Критерий закр. Sell } if (MA_2_t!=0 && MA_4_t==0 && wayUP==true) // Если разница между { // if (New_Bar==true) { Opn_S=true; New_Bar=false; } // Критерий откр. Sell //Cls_B=true; // Критерий закр. Buy } //--------------------------------------------------------------- 6 -- Попробуй так У тебя два условия после if если условий больше одного то надо брать в фигурные скобки asisdes 2009.09.04 09:27 #13 НЕЕЕТ брат не работает! Логика у меня не правильная? пипец... забача очень простая когда откроется новый бар, бар с номером 1 может принять значения MA_1_t!=0 тогда я должен сравнить направление тренда до 1 бара, Вопрос как с помощью логики или цикла определить какой был тренд до 1 бара с логикой не очень у меня! думал for for двойной цикл использовать, напрмиер 10 баров по 3 сигналам например, какие значения могу принимать: 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 и пребирать, нотоже както пипец Индекс качества волатильности Спрашивайте! Помогите кодом замка asisdes 2009.09.04 09:30 #14 и еще прикол в моей логике! if (MA_1_t!=0) {wayUP=true; wayDOWN=false;} if (MA_1_t!=0 && MA_3_t==0 && wayDOWN==true)позиции не открываються потому что первый ИФ wayDOWN=false поднимает флаг и все, позиции не отрываютсяMA_1_t!=0 && MA_3_t==0 - это условие пока является не достаточным art 2009.09.04 10:22 #15 ну во всяком случае по синтаксису только такие проблемы asisdes 2009.09.04 17:55 #16 //---------------------------------------------------------------- 5.1 ???? ????? static datetime New_Time; bool New_Bar; bool wayUP, wayDOWN; if(New_Time!=Time[0]) { New_Time=Time[0]; New_Bar=true; } else { New_Bar=false; } //---------------------------------------------------------------- 5.1 if (New_Bar==true) { if (MA_3_t!=0 && MA_4_t==0) { wayUP=true; wayDOWN=false; } if (MA_4_t!=0 && MA_3_t==0) { wayDOWN=true; wayUP=false; } } if (New_Bar==true && MA_1_t!=0 && wayDOWN==true) // && MA_3_t==0 { Opn_B=true; New_Bar=false; //Cls_S=true; } if (New_Bar==true && MA_2_t!=0 && wayUP==true) // && MA_4_t==0 { Opn_S=true; New_Bar=false; //Cls_B=true; } \\\\\\\\\\\\\\\\\\\\\\\ у такое ощущение то флажок не держится, когда конкретно идет смена с красного на синий шарик, торговля идет, а вот если будет пробел торговля не идет т.е. если MA_3_t==0 && MA_4_t==0 MA_4_t==0 && MA_3_t==0 когда все по нулям мы флажок не трогаем, и я думал что значения остались предыдущие, т.е. как раз получается например 3 бара. может у что то не понел, вообще теперь точно ни чего не понимаю, [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой Изучаем и пишем вместе переезд форума MQL4 Ilnaz 2009.09.09 21:04 #17 почему индюка не выложил? шаблон советника взят из курс по mql (alpari), если я не ошибаюсь. Михаил 2009.09.10 16:44 #18 Здравствуйте. Подскажите как правильно обращаться из советника к идикатору AMA_optimized При стандартном обращении выдает непонятные результаты :(. параметры передающиеся из советника индикатору: extern int Timeframe = 1; extern int periodAMA=120; extern double nfast=1.0; extern double nslow=30.0; extern double G=4.0; extern double dK=0.005; extern int PriceType=0; // цена, от которой строится extern int AMA_Trend_Type=1; Цикл вычисления индикатора для загрузки в буферы: for(bar = 1; bar < 3; bar++) { AMAbuffer[bar] = iCustom(NULL, Timeframe,"AMA_optimized", periodAMA, nfast,nslow,G,dK,PriceType,AMA_Trend_Type, 0, bar); upAMA[bar] = iCustom(NULL, Timeframe,"AMA_optimized", periodAMA, nfast,nslow,G,dK,PriceType,AMA_Trend_Type, 1, bar); downAMA[bar] = iCustom(NULL, Timeframe,"AMA_optimized", periodAMA, nfast,nslow,G,dK,PriceType,AMA_Trend_Type, 2, bar); bartime=iTime(NULL,1,0); Print (bar+"|"+TimeToStr(bartime,TIME_DATE)+"|"+TimeToStr(bartime,TIME_SECONDS )+"|"+AMAbuffer[bar]+"|"+ upAMA[bar]+"|"+ downAMA[bar]); } В журнале вот такие результаты: 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000 2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000 2009.09.10 18:25:17 2009.09.09 23:14 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:14:00|0.00000000|0.00000000|0.00000000 2009.09.10 18:25:17 2009.09.09 23:14 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:14:00|1.60721745|1.60721745|0.00000000 2009.09.10 18:25:17 2009.09.09 23:14 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:14:00|0.00000000|0.00000000|0.00000000 2009.09.10 18:25:17 2009.09.09 23:14 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:14:00|1.60721745|1.60721745|0.00000000 Если смотреть показания индикатора в окне графика в указанное время цифры с данными не совпадают :(. вопрос по АМА как Неправильные данные в тестере BrainSystem: Разработка торговых систем asisdes 2009.09.21 16:31 #19 простите забросил его делать не много сливает, а так работает . советник готов прилогаю, коде не много лишнего есть местами потому что из кусков на лету делал держите у кокго Файлы: tradingexpert_2.mq4 16 kb asisdes 2009.09.21 16:33 #20 кстати, у тебя нет ни какой ошибки в коде все правильно, тебе принт в журнал вписывает то что надо. 12 Новый комментарий
народ помогите разобраться с логикой
не могу ВТОРОЙ вопрос решить "2. Не точно выполняются условия."
вот навоял, но както мне кажется что не правильно : может кто помочь с логикой?
помогите, а то дельше продвигаться не могу. На логике застрялнарод помогите разобраться с логикой
не могу ВТОРОЙ вопрос решить "2. Не точно выполняются условия."
вот навоял, но както мне кажется что не правильно : может кто помочь с логикой?
помогите, а то дельше продвигаться не могу. На логике застрялНЕЕЕТ брат не работает! Логика у меня не правильная? пипец...
забача очень простая
когда откроется новый бар, бар с номером 1 может принять значения MA_1_t!=0 тогда я должен сравнить направление тренда до 1 бара,
Вопрос как с помощью логики или цикла определить какой был тренд до 1 бара
с логикой не очень у меня!
думал for for двойной цикл использовать, напрмиер
10 баров по 3 сигналам
например, какие значения могу принимать:
0 1 0 1 0 1 1 0 0 1 0
0 0 1 0 1 0 0 0 1 0 1
и пребирать, нотоже както пипец
и еще прикол в моей логике!
ну во всяком случае по синтаксису только такие проблемы
//---------------------------------------------------------------- 5.1 ???? ?????
static datetime New_Time;
bool New_Bar;
bool wayUP, wayDOWN;
if(New_Time!=Time[0])
{
New_Time=Time[0];
New_Bar=true;
}
else { New_Bar=false;
}
//---------------------------------------------------------------- 5.1
if (New_Bar==true) {
if (MA_3_t!=0 && MA_4_t==0) { wayUP=true; wayDOWN=false; }
if (MA_4_t!=0 && MA_3_t==0) { wayDOWN=true; wayUP=false; }
}
if (New_Bar==true && MA_1_t!=0 && wayDOWN==true) // && MA_3_t==0
{
Opn_B=true;
New_Bar=false;
//Cls_S=true;
}
if (New_Bar==true && MA_2_t!=0 && wayUP==true) // && MA_4_t==0
{
Opn_S=true;
New_Bar=false;
//Cls_B=true;
}
\\\\\\\\\\\\\\\\\\\\\\\
у такое ощущение то флажок не держится, когда конкретно идет смена с красного на синий шарик, торговля идет, а вот если будет пробел торговля не идет
т.е. если
MA_3_t==0 && MA_4_t==0
MA_4_t==0 && MA_3_t==0
когда все по нулям мы флажок не трогаем, и я думал что значения остались предыдущие, т.е. как раз получается например 3 бара.
может у что то не понел, вообще теперь точно ни чего не понимаю,
Здравствуйте.
Подскажите как правильно обращаться из советника к идикатору AMA_optimized
При стандартном обращении выдает непонятные результаты :(.
В журнале вот такие результаты:
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:15:00|0.00000000|0.00000000|0.00000000
2009.09.10 18:25:17 2009.09.09 23:15 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:15:00|1.60722465|1.60722465|0.00000000
2009.09.10 18:25:17 2009.09.09 23:14 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:14:00|0.00000000|0.00000000|0.00000000
2009.09.10 18:25:17 2009.09.09 23:14 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:14:00|1.60721745|1.60721745|0.00000000
2009.09.10 18:25:17 2009.09.09 23:14 AMA_Optimized_Trail_Trade GBPUSD,M1: 2|2009.09.09|23:14:00|0.00000000|0.00000000|0.00000000
2009.09.10 18:25:17 2009.09.09 23:14 AMA_Optimized_Trail_Trade GBPUSD,M1: 1|2009.09.09|23:14:00|1.60721745|1.60721745|0.00000000
Если смотреть показания индикатора в окне графика в указанное время цифры с данными не совпадают :(.
простите забросил его делать не много сливает, а так работает
. советник готов прилогаю,
коде не много лишнего есть местами потому что из кусков на лету делал
держите у кокго
кстати, у тебя нет ни какой ошибки в коде все правильно, тебе принт в журнал вписывает то что надо.