![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте
Я хочу найти эксперта по ма, чтобы сделать это... может ли кто-нибудь помочь мне... ?
-открыть покупку или продажу, когда цена пересекает МА с возможностью обратного сигнала
- иметь опцию в меню, чтобы выбрать расстояние от MA, чтобы взять сигнал, например 5 пунктов от MA или больше (пользовательские).
-выбирать тип МА .... также применять к открытию, закрытию, ...
-настроить TP ... SL traling stop
-закрывать позицию по следующему сигналу или на определенном расстоянии в пунктах от\ под MA
- управление капиталом
- открывать только 1 позицию за раз, не больше... не хеджировать...
-функция мартингейла
-и вторичная МА (*это по желанию)
- RSI для фильтрации сигналов МА
Майб, я прошу слишком многого... извините за мой плохой английский.
С уважением,
не работает советник
я вставил советник искусственного интеллекта в программу fxcm mt4 (технология Boston)...
он не работает.....
но работает в fxpro и alpari mt4....
я не знал и не выяснил, какая проблема в этой программе,,,,
в domo и real в (fxcm mt4) не работает.....
пожалуйста, помогите мне......
![](https://c.mql5.com/forextsd/smiles/cry_smile.png)
Я вставляю советника искусственного интеллекта в программу fxcm mt4 (технология Boston)...
это не работает.....
но работает в fxpro и alpari mt4....
я не знал и не выяснил в чем проблема в этой программе,,,,
в domo и real в (fxcm mt4) не работает.....
пожалуйста, помогите мне......какой советник с искусственным интеллектом?... возможно он требует другой валюты/символа или инструмента, которого нет в fxcm
-guyver
Помогите с советником
Может ли кодер посмотреть на этот код и сказать мне, почему он не размещает сделки? Во время бэктестов он работает нормально. Он успешно загружается, но не инициализируется. Я понятия не имею, откуда он взялся, но с некоторыми настройками он показал несколько приличных бэктестов. Я зашел на сайт, но там все на китайском языке или что-то вроде того, что я не могу прочитать. Заранее спасибо за любую помощь !!!
P.S. Мне пришлось удалить url из ссылки #property из-за ограничений на публикацию. Сайт - papazhoudotcom
#property copyright "Copyright ?2010, Antony, Fiona And Ken"
#property link
#define NoSignal -1
extern int EMAPeriod = 5;
extern int EMAPrice = PRICE_CLOSE;
extern int SMAPeriod = 20;
extern int SMAPrice = PRICE_CLOSE;
extern double Lots = 1;
extern int TP = 10;
extern int SL = 20;
extern int Magic = 123456;
int Signal = NoSignal;
int CloseSignal = NoSignal;
int CurrentBar = -1;
double ema1 = 0;
double sma1 = 0;
double ema2 = 0;
double sma2 = 0;
двойные лоты;
int init()
{
lots = Lots;
return(0);
}
int deinit()
{
return(0);
}
int start()
{
if(Period() != PERIOD_M5)
{
Alert("Этот советник работает только на периоде M5, пожалуйста, настройте текущий период!");
}
if(CurrentBar < Bars)
{
Signal = GetMASignal();
if(Signal != NoSignal)
{
lots = GetLots();
if(Signal == OP_SELL)
{
OpenTrade(OP_SELL, lots);
CloseSignal = OP_BUY;
}
if(Signal == OP_BUY)
{
OpenTrade(OP_BUY, lots);
CloseSignal = OP_SELL;
}
}
CurrentBar = Bars;
}
if(CloseSignal != NoSignal)
{
CloseTrades(CloseSignal);
if(!IsTradeExist(CloseSignal))
{
CloseSignal = NoSignal;
}
}
return(0);
}
//Пока не реализовано автоматическое вычисление лотов по размеру счета
double GetLots()
{
return(Lots);
}
//Проверка существования сделки на покупку или продажу
bool IsTradeExist(int cmd)
{
int count = OrdersTotal();
for(int i=0; i<count; i++)
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
if(OrderType() == cmd)
return(true);
return (false);
}
// Функция закрытия ордера
void CloseTrades(int cmd)
{
int count = OrdersTotal();
for(int i=0; i<count; i++)
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
if(OrderType() == cmd)
{
if(OrderType() == OP_BUY)
OrderClose(OrderTicket(), OrderLots(), Bid, 0, Green);
if(OrderType() == OP_SELL)
OrderClose(OrderTicket(), OrderLots(), Ask, 0, Pink);
}
}
//Поскольку некоторые брокеры не поддерживают SL и TP при отправке ордера.
//Поэтому используйте эту дополнительную функцию для изменения SL и TP
void ModifyTrade(int cmd, int ticket)
{
double tp, sl;
цвет clr;
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
{
if(cmd == OP_BUY)
{
tp = NormalizeDouble(OrderOpenPrice() + TP*MarketInfo(Symbol(), MODE_POINT), MarketInfo(Symbol(), MODE_DIGITS));
sl = NormalizeDouble(OrderOpenPrice() - SL*MarketInfo(Symbol(), MODE_POINT), MarketInfo(Symbol(), MODE_DIGITS));
clr = Blue;
}
if(cmd == OP_SELL)
{
tp = NormalizeDouble(OrderOpenPrice() + TP*MarketInfo(Symbol(), MODE_POINT), MarketInfo(Symbol(), MODE_DIGITS));
sl = NormalizeDouble(OrderOpenPrice() - SL*MarketInfo(Symbol(), MODE_POINT), MarketInfo(Symbol(), MODE_DIGITS));
clr = Red;
}
Print(sl);
OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clr);
}
}
//Функция для открытия ордеров
void OpenTrade(int cmd, double lots)
{
int ticket = -1;
if(cmd == OP_BUY)
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, 0, 0, 0, 0, NULL, Magic, 0, Blue);
if(cmd == OP_SELL)
ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, 0, 0, 0, 0, NULL, Magic, 0, Red);
if(ticket > -1)
ModifyTrade(cmd, ticket);
}
//Проверка пересечения 2 МА
int GetMASignal()
{
ema1 = iMA(Symbol(), Period(), EMAPeriod, 0, MODE_EMA, EMAPrice, 1);
sma1 = iMA(Symbol(), Period(), SMAPeriod, 0, MODE_SMMA, EMAPrice, 1);
ema2 = iMA(Symbol(), Period(), EMAPeriod, 0, MODE_EMA, EMAPrice, 2);
sma2 = iMA(Symbol(), Period(), SMAPeriod, 0, MODE_SMMA, EMAPrice, 2);
if(ema1 > sma1 && ema2 < sma2)
return(OP_BUY);
if(ema1 sma2)
return(OP_SELL);
return(NoSignal);
}
Обновление
Советник действительно инициализируется, но не выставляет сделки при пересечении ma![](https://c.mql5.com/forextsd/smiles/confused_smile.png)
Советник или скрипт помогите пожалуйста господа
Здравствуйте, гуру
пожалуйста, мне нужен советник или скрипт, который может нарисовать линию, затем я буду двигать линию мышью для отложенного ордера на реальном счете... если вы меня не поняли, я могу привести простой пример.
-------------------
Привет всем...
Может ли кто-нибудь подсказать мне, как избавиться от автоматических фибо-линий с пятницы по воскресенье, чтобы они показывали только с понедельника по четверг?
спасибо.
Привет всем...
Может ли кто-нибудь подсказать мне, как избавиться от автоматических линий fibo с пятницы по воскресенье, чтобы они отображались только с понедельника по четверг?
спасибо.Один из способов сделать это - проверить с помощью функции TimeDayOfWeek(datetime) ... затем вы можете опустить дни, которые вам не нужны для отображения фибо.
-Guyver
Один из способов сделать это - проверить с помощью функции TimeDayOfWeek(datetime) ... тогда вы можете опустить дни, которые вам не нужно, чтобы fibo отображалось -Guyver
Привет, Гайвер, спасибо за ответ.
Я пробовал, но этот индикатор также использует бокс. И не имеет значения, куда я помещаю TimeDayOfWeek, это влияет только на бокс, а не на фибо.