Андрей, нужно написать сову по индикатору MA_Signal_ver2. Но фишка вот в чем, 1) на график ставятся одновременно 2 индикатора с разными периодами. 2) Сделка может быть открыта только по МА с меньшими параметрами периода, но только в сторону параметра старшего индикатора МА, пропуская противоположные сигналы на вход. 3) закрывается сделка при сигнале ( стрелке ) противоположного движения цены на младшем МА. Например: МА2, с параметрами 10 и 100 при пересечении указывает на продажу ( sel ), в таком случае, при пересечении МА 2 с параметрами 5-10 в sel, открывается ордер на продажу, и закрывается, при пересечении МА2 в buy. Сделка в buy не может быть открыта, при значении SEL машки старшего периода 10 — 100. Тоесть все сделки в buy пропускаются, пока не будет пересечение в buy на МА2 c параметрами 10 — 100. После пересечения в buy старшей машки, на младшей приоритеты меняются местами, байки открываются, на селках закрываются, селки пропускаются. Естественно сова должна иметь переменные ТФ, СЛ, ТФ, ТРАЛ и возможность менять переменные лота и периодов МА.
MA2_Signal_ver2.mq4 (6 Kb)MA2_Signal_ver2.ex4 (5 Kb) НАДЕЮСЬ так теперь получится. спасибо
Комментарии (44)
35 AM2 Сообщений: 16266 - Андрей
7 ell75 Автор Сообщений: 195
35 AM2 Сообщений: 16266 - Андрей
7 ell75 Автор Сообщений: 195
Это просьба и к админам тоже.
Только этА… чересчур не увлекитесь, а то вдруг Форекс поломаете...
20 Anatoly74 Сообщений: 3710 - Анатолий
35 AM2 Сообщений: 16266 - Андрей
7 ell75 Автор Сообщений: 195
35 AM2 Сообщений: 16266 - Андрей
Покупка, Продажа: МА 10 пересекла МА 100 снизу вверх или
Закрытие покупки, продажи МА 5 пересекла МА 10
2. для второго индикатора МА 5\10
Закрытие, покупки, продажи МА 5\10, в параметре МА 10\100
Пропуск, покупки, продажи МА 5\10 в параметре МА 10\100
7 ell75 Автор Сообщений: 195
7 ell75 Автор Сообщений: 195
7 ell75 Автор Сообщений: 195
7 ell75 Автор Сообщений: 195
35 AM2 Сообщений: 16266 - Андрей
Боже мой, я вспоминаю свои первые заказы по переделкам. Все программисты наверное просто ржали…
Это рекомендация программиста написать ТЗ понятным ему языком, а ниже приведён только образец.
Вот по этому образцу и составьте ТЗ хоть с четырьмя машками, хоть с десятью, хоть с двадцатью.
20 Anatoly74 Сообщений: 3710 - Анатолий
7 ell75 Автор Сообщений: 195
Я вас очень хорошо понимаю. Но если Вы не опишите свои задумки программисту понятным ему языком, то будет как в анекдоте:
Штурман, прибор.
Есть.
Что есть?
А что прибор?
20 Anatoly74 Сообщений: 3710 - Анатолий
4 cfntkbn Сообщений: 49
7 ell75 Автор Сообщений: 195
А вот ТЗ, которое я от вас добивался. Пример я вам предоставил.
Сейчас уже можно окончательно согласовывать все пункты ТЗ.
Как видите ничего нереального я не просил.
35 AM2 Сообщений: 16266 - Андрей
а вот что я смогла по своему написать. только Вы ещё не успели это увидеть)
1. для первого индикатора МА 10\100
Покупка, Продажа: МА 10 пересекла МА 100 снизу вверх или
Закрытие покупки, продажи МА 5 пересекла МА 10
2. для второго индикатора МА 5\10
Закрытие, покупки, продажи МА 5\10, в параметре МА 10\100
Пропуск, покупки, продажи МА 5\10 в параметре МА 10\100
7 ell75 Автор Сообщений: 195
7 ell75 Автор Сообщений: 195
Есть программисты желающие задавать наводящие вопросы(как правило за оплату), есть просто не желающие делать это даже за дополнительную оплату.
Остаётся два варианта:
1. Говорить на языке понятным программисту.
2. Отказаться от заказа советника и торговать ручками.
Увы, но такова жизнь.
20 Anatoly74 Сообщений: 3710 - Анатолий
И МА индикатор и «своеобразный индюк» тоже индикатор, только усложнённый.
Это равнозначно фразе: — «Дело в том, что индикатор MACD не просто машки в простом понимании, а своеобразный индюк, на его параметрах и надо сделать сову." Редактирован: 17 июля 2015, 12:24
20 Anatoly74 Сообщений: 3710 - Анатолий
7 ell75 Автор Сообщений: 195
Вы глубоко ошибаетесь, но тем не менее, я Вас больше не потревожу.
20 Anatoly74 Сообщений: 3710 - Анатолий
Как так можно!? Это ведь теперь ваш общий заказ!
35 AM2 Сообщений: 16266 - Андрей
7 ell75 Автор Сообщений: 195
4 cfntkbn Сообщений: 49
4 cfntkbn Сообщений: 49
7 ell75 Автор Сообщений: 195
35 AM2 Сообщений: 16266 - Андрей
7 ell75 Автор Сообщений: 195
www.opentraders.ru/downloads/809/
35 AM2 Сообщений: 16266 - Андрей
35 AM2 Сообщений: 16266 - Андрей
7 ell75 Автор Сообщений: 195
14 beton2011 Сообщений: 895
27 Oxy Сообщений: 3430 - ..ιllιlι.lι.ιllι.ιlι..
на МА, очень ненадежны.
//+------------------------------------------------------------------+
//| Copyright 2007, Malinouski Yury, Lukashuk Victor
//| mod. by lukas1
//| version 1402 06.06.2007
//+------------------------------------------------------------------+
// Эксперт открывает и закрывает позиции по факту пересечения средних
// убрано всё что не нужно для оптимизации
// — = " Основные изменения в этой версии " = — // в основной версии перепутана принципиальная последовательность
// работы с ордерами, порядок д.б. таков:
// проверяем, закрываем, расчитываемм лот и стопы, открываем новые
#property copyright «Copyright © 2007, lukas1@ngs.ru»
#include <stdlib.mqh> // библиотека отображения ошибок
extern string V_R = «Время работы»;
extern bool use_work_time = false;
extern int Start = 0;
extern int Stop = 24;
extern int Take_profit=380;
extern int Stop_loss=57;
extern int ma_fast=8; // Период быстрой МА
extern int ma_slow=21; // Период медленной МА
extern double ma_method = 3;
/* MODE_SMA 0 Простое скользящее среднее
MODE_EMA 1 Экспонентциальное скользящее среднее
MODE_SMMA 2 Сглаженное скользящее среднее
MODE_LWMA 3 Линейно-взвешенное скользящее среднее*/
extern double applied_price = 4;
/* PRICE_CLOSE 0 Цена закрытия
PRICE_OPEN 1 Цена открытия
PRICE_HIGH 2 Максимальная цена
PRICE_LOW 3 Минимальная цена
PRICE_MEDIAN 4 Средняя цена, (high+low)/2
PRICE_TYPICAL 5 Типичная цена, (high+low+close)/3
PRICE_WEIGHTED 6 Взвешенная цена закрытия, (high+low+close+close)/4 */
extern int ma_shifft =0; // Сдвиг индикатора относительно ценового графика
extern double Lots =0.1;
extern int Kolichestvo_Orderov=3;
extern int MAGIC=111222;
int digits; // количество знаков для работы с данной вал. парой
int stoplevel; // минимальный отступ установки стоповых ордеров
int spred;
double minlot,lot;
double m1=1;
double m2=1;
double s1=1;
double s2=1;
double b=1;
int cnt=0;
double PROF=0;
double STOP=0;
int ticket,st,pr;
//+------------------------------------------------------------------+
//| Расчет размера ордера |
//+------------------------------------------------------------------+
void LotsSize()
{
minlot = MarketInfo(Symbol(),MODE_MINLOT);
stoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
spred =MarketInfo(Symbol(),MODE_SPREAD);
digits =MarketInfo(Symbol(),MODE_DIGITS);
lot=Lots;
}
//-------------------------------------------------------------------------------------------------------------
int start()
{
// в самом начале 20 раз проверяем что торговля разрешена
int sss=20;
while(sss>=0)
{if (IsTradeAllowed()) {sss=sss-20;} else Sleep(100);
sss--;
}
if (b<Bars)
{
m1=iMA(NULL,0,ma_fast, ma_shifft, ma_method, applied_price, 1);
m2=iMA(NULL,0,ma_fast, ma_shifft, ma_method, applied_price, 2);
s1=iMA(NULL,0,ma_slow, ma_shifft, ma_method, applied_price, 1);
s2=iMA(NULL,0,ma_slow, ma_shifft, ma_method, applied_price, 2);
// проверка открытых позиций
for(cnt=0;cnt<OrdersTotal();cnt++)
{OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
{if(OrderType()==OP_BUY) // длинная позиция открыта
{// should it be closed?
if ((s2<m2)&&(s1>m1)&&(b<Bars))
{b=Bars;
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
return(0); // exit
}
}
if(OrderType()==OP_SELL) // go to short position
{// should it be closed?
if ((s2>m2)&&(s1<m1)&&(b<Bars))
{b=Bars;
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
}
}
}
}
// Расчет желаемого размера ордера
LotsSize();
//фильтр время
if(use_work_time)
{
if(Start>Stop)
{
if(Hour()>=Stop && Hour()<Start) return;
}
if(Start<Stop)
{
if(Hour()<Start || Hour()>=Stop) return;
}
}
// открываем новые ордера
if (OrdersTotal()<Kolichestvo_Orderov)
{if ((s2>m2)&&(s1<m1)) // мед.МА выше быст.МА назад 2 бара; мед.МА ниже быст.МА назад 1 бар
{
PROF=0; STOP=0;
if (Stop_loss>0)
{if(Stop_loss-spred<=MathMax(stoplevel,spred)) st=MathMax(stoplevel,spred); else st=Stop_loss-spred;
STOP=NormalizeDouble(Bid-st*Point,digits);
}
if(Take_profit>0)
{pr=Take_profit+stoplevel; //расчет TP от Bid для верного отображения по Ask
PROF=NormalizeDouble(Bid+pr*Point,digits);
}
ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,3,
NormalizeDouble(STOP,digits), // SL
NormalizeDouble(PROF,digits), // TP
«buy_»,MAGIC,0,Blue);
if(ticket<1)
{Print(«Oшибка »,ErrorDescription(GetLastError()));
return(0);
}
b=Bars;
}
if ((s2<m2)&&(s1>m1)) // мед.МА ниже быст.МА назад 2 бара; мед.МА выше быст.МА
{
PROF=0; STOP=0;
if(Stop_loss>0)
{if(Stop_loss-spred<=MathMax(stoplevel,spred)) st=MathMax(stoplevel,spred); else st=Stop_loss-spred;
STOP=NormalizeDouble(Ask+st*Point,digits);
}
if(Take_profit>0)
{pr=Take_profit+stoplevel; //расчет TP от Ask для верного отображения по Bid
PROF=NormalizeDouble(Ask-pr*Point,digits);
}
ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,3,
NormalizeDouble(STOP,digits), // SL
NormalizeDouble(PROF,digits), // TP
«sell_»,MAGIC,0,Red);
if(ticket<1)
{Print(«Oшибка »,ErrorDescription(GetLastError()));
return(0);
}
b=Bars;
}
}
if(AccountFreeMargin()<(300*lot)) // Проверка наличия свободных средств для торговли
{Alert(«Мы не имеем денег. Free Margin = », AccountFreeMargin());
return(0);
}
return(0);
}
} Редактирован: 25 июля 2015, 23:43
5 terminat Сообщений: 23 - terminat
7 ell75 Автор Сообщений: 195
Вот нашел у себя один похожий советник, в советнике много настроек и дополнительных индикаторов.
Я немного тестировал этот сов, иногда даже получалось подобрать хорошие настройки, с которыми советник выходил в профит
www.opentraders.ru/downloads/810/
14 beton2011 Сообщений: 895
7 ell75 Автор Сообщений: 195
7 ell75 Автор Сообщений: 195
Андрей, напечатайте барышне пару рецептов из «Книги о вкусной и здоровой пище».
P. S. А вот теперь действительно всё. В Ваш блог я ни ногой. Редактирован: 17 июля 2015, 19:54
20 Anatoly74 Сообщений: 3710 - Анатолий
27 Oxy Сообщений: 3430 - ..ιllιlι.lι.ιllι.ιlι..
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий