Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Занеси ветку в избранное. Отслеживай изменения еще быстрее!
Виталий
34
Виталий 2011.08.18 10:28 

Не могу найти ошибку! Помогите, пожалуйста, новичку! Советник не заключает сделки...

Вот код:

extern int interval_1 = 9;
extern int interval_2 = 26;
extern int interval_3 = 52;

//------------------------------------------------------------------------------------------------//

int start()
{

double Tenkan = Func(interval_1, 1);
double Tenkan1 = Func(interval_1, 2);
double Kijun = Func(interval_2, 1);
double Kijun1 = Func(interval_2, 2);
double Senkou_Span_A;
double Chinkou_Span = Close[interval_2];
int ticket;

if (Tenkan > Kijun)
{
if (Tenkan1 <= Kijun1)
{
if (Close[1] > Close[interval_2]) // проверка условия, что Чинкоу спан выше цены
{
if (OrdersTotal() < 1)
{
ticket = OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-100*Point,Ask+100*Point,"My order #",16384,0,Green);
if(ticket < 0)
{
Print("Ордер не установлен. Ошибка - #",GetLastError());
return(0);
}
}
}
}
}
return(0);
}

//------------------------------------------------------------------------------------------------//

int Func(int count, int start)
{
double Max = ArrayMaximum(High, count, start);
double Min = ArrayMinimum(Low, count, start);
double Result = (Max + Min) / 2;
return(Result);
}

//------------------------------------------------------------------------------------------------//


Советник работает на основе Ишимоку. Если тенкан пересекает киджун снизу вверх он открывает лонг. Для подтверждения сигнала советник проверяет, что Чинкоу спан выше цены.

Советник может только покупать. Я только учусь програмироватть и знаю что торгуя по таким правилам прибыли не будет. Я просто хочу научится писать советники.

Советник не выдает никаких ошибок, просто не заключает сделок.

А еще непонятка в том, что если "(high + low) / 2;" заменить на "(high - low) / 2;", то советник начинает торговать, причем торги его близки к правильным!!!

Помогите, пожалуйста, господа спецы! Неделю уже бьюсь, не могу понять в чем дело...

rlx
166
rlx 2011.08.18 11:04  

Может в этом

int Func(int count, int start)
 {
 double Max = ArrayMaximum(High, count, start);
 double Min = ArrayMinimum(Low, count, start);
 double Result = (Max + Min) / 2;
 return(Result);
 }

Нужно

double Func(int count, int start)
 {
 double Max = ArrayMaximum(High, count, start);
 double Min = ArrayMinimum(Low, count, start);
 double Result = (Max + Min) / 2;
 return(Result);
 }
Victor Nikolaev
Модератор
14041
Victor Nikolaev 2011.08.18 11:09  
Xaoss1990:

Не могу найти ошибку! Помогите, пожалуйста, новичку! Советник не заключает сделки...

Вот код:


Советник работает на основе Ишимоку. Если тенкан пересекает киджун снизу вверх он открывает лонг. Для подтверждения сигнала советник проверяет, что Чинкоу спан выше цены.

Советник может только покупать. Я только учусь програмироватть и знаю что торгуя по таким правилам прибыли не будет. Я просто хочу научится писать советники.

Советник не выдает никаких ошибок, просто не заключает сделок.

А еще непонятка в том, что если "(high + low) / 2;" заменить на "(high - low) / 2;", то советник начинает торговать, причем торги его близки к правильным!!!

Помогите, пожалуйста, господа спецы! Неделю уже бьюсь, не могу понять в чем дело...



int Func(int count, int start)
{
double Max = High[ArrayMaximum(High, count, start)];
double Min = Low[ArrayMinimum(Low, count, start)];
double Result = (Max + Min) / 2;
return(Result);
}

Хотя есть специальные функции iHighest(), iLowest()
Виталий
34
Виталий 2011.08.18 11:26  

Спасибо большое Rlx и Vinin !!!

А я думал, что ArrayMaximum возвращает максимальное значение а не индекс элемента!

Спасибо, теперь буду знать! и пользоваться iHighest(), iLowest() !!!!

Victor Nikolaev
Модератор
14041
Victor Nikolaev 2011.08.18 14:39  
Xaoss1990:

Спасибо большое Rlx и Vinin !!!

А я думал, что ArrayMaximum возвращает максимальное значение а не индекс элемента!

Спасибо, теперь буду знать! и пользоваться iHighest(), iLowest() !!!!


Только не стоит забывать что они тоже возвращают индекс
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий