Скачать MetaTrader 5

[Помогите написать советник, я новичок в MQL и плохо все понимаю. Буду очень признателен. Советник на основании RSI. ] Советник

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Добавляй наш канал в друзья и следи за новостями!
Pavel10
96
Pavel10 2012.03.12 09:33 
Здравствуйте! Помогите написать советник, я новичок в MQL и плохо все понимаю. Буду очень признателен. Советник на основании RSI. Спасибо!
Вот код:
extern int RSIPeriod=14;
extern double RSI_Level =30 ;
extern double RSI_2_Level =70;


bool Work=true;
string Symb;



//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double RSI_1 =iCustom(NULL, 0, "RSI",14, 1, 0);
if( RSI_1 < RSI_Level )
{
OrderSend( Symbol(),OP_BUY,0.1,Ask,3,Bid -200*Point,Bid+200*Point);
}

double RSI_2 =iCustom(NULL, 0, "RSI",14, 1, 0);
if( RSI_2 > RSI_2_Level )
{

OrderSend( Symbol(),OP_SELL,0.1,Bid,3,Ask -200*Point,Ask+200*Point);
}
return(0);
}
Evgeniy Gutorov
4719
Evgeniy Gutorov 2012.03.12 10:13  
PAVEL10:
Здравствуйте! Помогите написать советник, я новичок в MQL и плохо все понимаю. Буду очень признателен. Советник на основании RSI. Спасибо!

Посмотрите в сети советников на основании RSI полным полно

TarasBY
1739
TarasBY 2012.03.12 10:27  
Вы прикольный! Для получения морального права писать советники, нужно ознакомиться с принципами их функционирования, с набором необходимых данных, которыми он должен обладать. Это всё можно ПОПЫТАТЬСЯ осмыслить на чужих советниках.

А для прикола, могу предложить такой вид функции старт:

//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
    double RSI = iRSI (NULL, 0, RSIPeriod, 0, 0);
    if (RSI < RSI_Level)
    {
        OrderSend (Symbol(), OP_BUY, 0.1, NormalizeDouble (Ask, Digits), 3, NormalizeDouble (Bid - 200 * Point, Digits), NormalizeDouble (Bid + 200 * Point, Digits));
    }
    else if (RSI > RSI_2_Level)
    {
        OrderSend (Symbol(), OP_SELL, 0.1, NormalizeDouble (Bid, Digits) 3, NormalizeDouble (Ask + 200 * Point, Digits), NormalizeDouble (Ask - 200 * Point, Digits));
    }
    return (0);
}

Манию открытия ордеров можно прочувствовать... ;)

Bicus
2396
Bicus 2012.03.12 10:46  
PAVEL10:
Здравствуйте! Помогите написать советник, я новичок в MQL и плохо все понимаю. Буду очень признателен. Советник на основании RSI. Спасибо!

1. Посмотрите стандартную функцию iRSI

2. Ваш код на каждый тик будет открывать по ордеру. Перед открытием ордера вам требуется вставить проверку на наличие уже открытого (рыночного) ордера.

Pavel10
96
Pavel10 2012.03.12 11:42  

Я не разбираюсь в программирование, и мне это очень тяжело делать… Спасибо! Вы за деньги программируете господа или за идею?

LIZ
1265
LIZ 2012.03.12 11:53  
PAVEL10:

Я не разбираюсь в программирование, и мне это очень тяжело делать… Спасибо! Вы за деньги программируете господа или за идею?



Если не разбираетесь в программировании, то сгенерировать мало-мальски прибыльную идею Вам будет ой как сложно. Изучайте программирование - и будет Вам счастье. НАчало ведь положено уже)

Pavel10
96
Pavel10 2012.03.12 12:23  
да, для меня очень сложно...
LIZ
1265
LIZ 2012.03.12 13:04  
PAVEL10:
да, для меня очень сложно...

По-тиху по-тиху с 1й странички - и все будет норм.https://book.mql4.com/ru/content
Pavel10
96
Pavel10 2012.03.12 13:47  

есть книга, спсибо,

Я вот поделал немного и вот что получилось, возможно это смешно... Мне необходимо чтобы от уровня 70 продавал, а от уровня 30 покупал... со стопами и тейк профитом. Я просто не совсем пойму, что именно получилось... Проверте

extern int RSIPeriod=14;
extern double RSI_Level =30 ;
extern double RSI_2_Level =70;


bool Work=true;
string Symb;



//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)
{
double RSI_1 =iCustom(NULL, 0, "RSI",14, 1, 0);
if( RSI_1 < RSI_Level )
{
OrderSend( Symbol(),OP_BUY,0.1,Ask,3,Ask-250*Point,Ask+250*Point);
}

double RSI_2 =iCustom(NULL, 0, "RSI",14, 1, 0);
if( RSI_2 > RSI_2_Level )
{

OrderSend( Symbol(),OP_SELL,0.1,Bid,3,Bid+250*Point,Bid-250*Point);
}
}
return(0);
}

Sceptic Philozoff
Модератор
17844
Sceptic Philozoff 2012.03.12 17:52  

Топикстартер, есть пара замечаний:

1. Тему надо называть предметно, с конкретным запросом. Примерно так, как я подправил.

2. Научитесь цивилизованно вставлять код. Для этого есть комбинация Ctrl+Alt+M или кнопка SRC.

Pavel10
96
Pavel10 2012.03.12 18:46  

Я первый раз на форуме, и не знаю вашего устава...

Почему советник работает только в бай и только на тестере?

12345
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий