[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 940

 
extern double SL=20; // SL для открываемого ордера
extern double TP=20; // ТР для открываемого ордера
extern double Lot=0.01; // Жестко заданное колич. лотов
datetime time;
//--------------------------------------------------------------- 2 --
int start()
{
int Total;

double
M_0,
M_1;


bool
Ans =false, // Ответ сервера после закрытия
Cls_B=false, // Критерий для закрытия Buy
Cls_S=false, // Критерий для закрытия Sell
Opn_B=false, // Критерий для открытия Buy
Opn_S=false; // Критерий для открытия Sell

//--------------------------------------------------------------- 3 --
// Учёт ордеров


for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()>1)Total++;

if(Total!=0 || time==Time[1])return;


// Торговые критерии

M_0=iOsMA(NULL,0,13,34,8,0,0); // 0 бар
M_1=iOsMA(NULL,0,13,34,8,0,1); // 1 бар



if (M_1<0 && M_0>0)
Opn_B=true;

if (M_1>0 && M_0<0)
Opn_S=true;

//--------------------------------------------------------------- 7 --


if (Opn_B)
{OrderSend(Symbol(),OP_BUY,Lot,Ask,0,Bid-SL*Point,Bid+TP*Point);time=Time[1];}

if (Opn_S)
{OrderSend(Symbol(),OP_SELL,Lot,Bid,0,Ask+SL*Point,Ask-TP*Point);time=Time[1];}
}


Советник, открывающий позиции при пересечении OsMA нулевой линии. Непонятно где открывает и непонятно почему. Посмотрите кто-нибудь, может ошибка в iOsMA(NULL,0,13,34,8,0,0)?
 
T.H.C.:

Советник, открывающий позиции при пересечении OsMA нулевой линии. Непонятно где открывает и непонятно почему. Посмотрите кто-нибудь, может ошибка в iOsMA(NULL,0,13,34,8,0,0)?

Тестируешь по всем тикам?
 
001:


Спасибо за ответ. Набросал простейший советник. Все равно не работает.


в этом коде, посмотри ошибки, функция OrderSend нажатие F1 вызовет справку в стандартном редакторе, посмотри поочередность входящих параметров там ошибка.

+ пользуйся функциями Print / Alert для просмтора значений переменных, вставлять в участок кода после ( назначений / выполнения )

и понмнить про нормализацию для вывода, DoubletoSt..NormalizeDouble..TimeToStr

в аттаче 2 свободых библиотеки с кодом . автор kimIV

код простой, готовые функции, для новичков в самый раз .

Файлы:
_lib2.zip  10 kb
 

// Жестко заданное колич. лотов :)

 
T.H.C.:
Да

Тогда у тебя сказывается дребезг на нулевом баре.
 
Vinin:

Тестируешь по всем тикам?
Да
 

Как "прекратить" поток неудовольствия ДЦ?

Ниже - выписка из журнала:

10:00:25 Old tick EURUSD30 1.38730/1.38740
10:00:25 Old tick EURUSD240 1.38730/1.38740
10:00:25 Old tick EURUSD1440 1.38730/1.38740
10:00:25 Old tick EURUSD15 1.38730/1.38740
10:00:25 Old tick EURUSD1 1.38730/1.38740
10:00:25 Old tick EURUSD60 1.38730/1.38740
10:00:25 Old tick EURUSD5 1.38730/1.38740
11:00:34 Old tick EURUSD30 1.38847/1.38863
11:00:34 Old tick EURUSD240 1.38847/1.38863
11:00:34 Old tick EURUSD1440 1.38847/1.38863
11:00:34 Old tick EURUSD15 1.38847/1.38863
11:00:34 Old tick EURUSD1 1.38847/1.38863
11:00:34 Old tick EURUSD60 1.38847/1.38863
11:00:34 Old tick EURUSD5 1.38847/1.38863
11:25:06 Old tick EURUSD30 1.38707/1.38722
11:25:06 Old tick EURUSD240 1.38707/1.38722
11:25:06 Old tick EURUSD1440 1.38707/1.38722
11:25:06 Old tick EURUSD15 1.38707/1.38722
11:25:06 Old tick EURUSD1 1.38707/1.38722
11:25:06 Old tick EURUSD60 1.38707/1.38722

 
Vinin:

Тогда у тебя сказывается дребезг на нулевом баре.
И что делать? Менее точный метод? Другого выхода нет? А при работе этого советника дребезг тоже будет?
 

при Тестирование голова болит ?

 

// Торговые критерии

M_0 ={ iOsMA(0,0,13,34,8,0,1) }; //| 1бар
M_1 ={ iOsMA(0,0,13,34,8,0,2) }; //| 2бар

Opn_B ={ (((M_1<0)==1) &&((M_0>0)==1) ) };
Opn_S ={ (((M_1>0)==1) &&((M_0<0)==1) ) };

пробуй так, задржки, но без дребезга:)

Причина обращения: