прошу проверить корректноть кода.
см. ниже.
ЛАДНО ДЕЛАЮ ап...
вот на воял системку, но какие то у нее проблемы, есть ... может кто помочь в смысле алгоритма и код подправить
говорю сразу, весь код у меня гибрид поэтому сильно не ругать..
//--------------------------------------------------------------- 5 -- // Торговые критерии MA_1_t=iCustom(Symbol(),0,"AMA_optimized",0,1); // МА_1 MA_2_t=iCustom(Symbol(),0,"AMA_optimized",0,2); // МА_2 MA_3_t=iCustom(Symbol(),0,"AMA_optimized",0,3); // МА_2 MA_4_t=iCustom(Symbol(),0,"AMA_optimized",0,4); // МА_4 deltaAMA=MathAbs(MA_1_t - MA_2_t); deltaAMA2=MathAbs(MA_2_t - MA_3_t); if (deltaAMA > dK*Point && deltaAMA2 < dK*Point) // Если разница между { // ..МА 1 и 2 большая Opn_B=true; // Критерий откр. Buy //Cls_S=true; // Критерий закр. Sell } if (deltaAMA < dK*Point && deltaAMA2 > dK*Point) // Если разница между { // ..МА 1 и 2 большая Opn_S=true; // Критерий откр. Sell //Cls_B=true; // Критерий закр. Buy } //--------------------------------------------------------------- 6 --
iCustom(Symbol(),0,"AMA_optimized",0,1); - это то что здесь лежало см. выше если что.
в чем проблема.
1. на визульном тесте не всегда там где енадо открывает! Может в алгоритме что напутал
deltaAMA > dK*Point && deltaAMA2 < dK*Point - такое сравнения я делаю что бы открыватся на первом сигнале, а не каждом красном шарике имеется в виду
(СИНИЙ, СИНИЙ, КРАСНЫЙ, НУЛЕВОЙ БАР(еще не сформировался)) - например 4 бара, и когда мы видим что начались красные, продаем
с синими на оборот.
т.е. заходить только при смене направления!
2. Иногда бывает что в одном баре срабатывает тейкепрофит, и советник еще раз открывается в этом же напралении, это правильно или нет?
вот сигналы красны ложные сработали а хотелось бы по синему
Еще вопрос, если вдруг с советником не получиться!
if (MathAbs(AMAbuffer[i]-AMAbuffer[i+1])>dK*Point) { if (AMAbuffer[i]-AMAbuffer[i+1]>0) { val1=AMAbuffer[i]; // это синие if (i==1) { if (direction==-1) {Comment("НАЧАЛО СИНИХ"); Comment("НАЧАЛО СИНИХ Время сигнала ",lasttime); SendMail("blue", "Время сигнала "+lasttime); Print("DADASDSADSAD"); } direction=1; } } else { val2=AMAbuffer[i]; if (i==1) { if (direction==1) { Comment("НАЧАЛО КРАСНЫХ"); Comment("НАЧАЛО КРАСНЫХ Время сигнала ",lasttime); SendMail("red", "Время сигнала "+lasttime); Print("DADASDSADSAD"); } direction=-1; } // это красные } } } else
Это часть кода с индикатора АМА, хотел добавить отправку на почту сигналов!
одноко в логике моей кажись проблема есть, хотел сделать так что бы толкьо первые сигналы отправлялись, а остальные гне надо
if (i==1) { // это условие говоорит что бар должен быть равен 1, т.е. на уже сформировавшийся бар смотрим и он последний (ну скажем 1)
потом надо проверить если до него направление было иное надо отправить письмо.
direction - я этим воспользовался, но по ходу дела не правельно как-то?
остновная проблема что можно было по топому смотреть на 2 бар, и сравнить его с 1, если они одинаковые то напраавление не меняется,
однако АМА иногда не показывает сигналы, уходит на флет, тогда сравнивать не счем :((
Дамы и госпада вот мы и на финишной примой, есть пора вопросов
может кто поможет еще на пару каверзных вопросов ответит, поможет
Эксперт написан ордера открывает, однако есть пару ньюансов которые что я не мог уобойти
скрин прилогаю
//--------------------------------------------------------------- 5 -- // Торговые критерии 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 deltaAMA=MathAbs(MA_1_t - MA_2_t); deltaAMA2=MathAbs(MA_2_t - MA_3_t); if (MA_1_t!=0 && MA_3_t==0) // Если разница между { // ..МА 1 и 2 большая Opn_B=true; // Критерий откр. Buy //Cls_S=true; // Критерий закр. Sell } if (MA_2_t!=0 && MA_4_t==0) // Если разница между { // ..МА 1 и 2 большая Opn_S=true; // Критерий откр. Sell //Cls_B=true; // Критерий закр. Buy } //--------------------------------------------------------------- 6 --
Приведу список проблем может кто сможет помочь
Проблемы:
1. На 0 баре по правильному сигналу могут сработать тайкпрофиты, и тогда советник открывается еще раз.
это ярко видно на красном баре, 5 по счету слева.
решение: как поставить условие чтобы открывалась только одна сделка на одном сигнале?
2. Не точно выполняются условия.
расмотрим две последовательности сигналов (кр.- это красный шарик, сн- это синий шарик, ПУСТО - это когда шариков вообще нет)
на класическом сигнале вроде открывается верно
например1:
кр. кр. сн. 0(бар) - здесь надо отркыть позицию БАЙ
тоже самое только в обратку
сн.сн.кр.0(бар) - здесь надо отркыть позицию СЕЛЛ
ОДНАКО:
могут проходить такие сигнал
сн. сн. ПУСТО сн. 0(бар) - здесь открывается позиция БАЙ (это не првильно), я подозреваю что, это условие
MA_3_t==0
как раз и удовлетворяет этому тоже. поэтому если кто может с условиями помочь, как тут и что КАКИЕ УСЛОВИЯ ПОСТАВИТЬ?
3. ПРОБЛЕМА
Это проблема с iCustom- я там параметры на угад поставил,
не знал как рабоет кастом и какие параметры передает индикатоор
поэтому по смыслу у меня так:
MA_1_t=iCustom(Symbol(),0,"AMA_optimized",1,1); // с конца 1-это первый бар (не путать с нулевым), 1 - сигнал синий
MA_2_t=iCustom(Symbol(),0,"AMA_optimized",2,1); // с конца 1-это первый бар (не путать с нулевым), 2 - сигнал красный
MA_3_t=iCustom(Symbol(),0,"AMA_optimized",1,2); // с конца 2-это второй бар (не путать с нулевым), 1 - сигнал синий
MA_4_t=iCustom(Symbol(),0,"AMA_optimized",2,2); // с конца 2-это второй бар (не путать с нулевым), 2 - сигнал красный
но мне кажеться что это, ( 1 - сигнал синий с айКастома) не правельно я думаю
подправте меня с параметрами
deltaAMA - надо это использовать или нет?
Решен вопрос как сделать так что бы открывалось только по одному сигналу на один бар
ПРОБЛЕМА номер один решена, ура
// Торговые критерии 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; if(New_Time!=Time[0]) { New_Time=Time[0]; New_Bar=true; } else { New_Bar=false; } //---------------------------------------------------------------- 5.1 БЛОК ФЛАГА if (MA_1_t!=0 && MA_3_t==0) // Если разница между { // ..МА 1 и 2 большая if (New_Bar==true) Opn_B=true; New_Bar=false; // Критерий откр. Buy //Cls_S=true; // Критерий закр. Sell } if (MA_2_t!=0 && MA_4_t==0) // Если разница между { // ..МА 1 и 2 большая if (New_Bar==true) Opn_S=true; New_Bar=false; // Критерий откр. Sell //Cls_B=true; // Критерий закр. Buy } //--------------------------------------------------------------- 6 --
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
ВОТ ЭКСПЕРТ КОД ДЛИННЫЙ...