OrderSend (Symbol(),OP_SELL не торгует

 
здравствуйте.

что то не селит советник. не пойму от чего. никак не пойму как выставить горизонтальную линию на расстоянии - вместо ордера.

спасибо.

//+------------------------------------------------------------------+
//| RA.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
//--- input parameters
extern bool sell = 1; // разрешение продавать
extern bool buy = 1;
extern double lots = 0.2;
extern int sl = 50;
extern int tp = 100;
extern int trend_period = 55; //есть индикатор trend. с периодом trend_period
extern double trend_lev_b = 0.1; // на этом уровне индикатора должен быть ордер
extern double trend_lev_s = -0.1;
extern int otkat = 50; // на этом расстоянии на графике цены, при достижении индикатором trend
extern int order = 20; // уровня trend_lev должна рисоваться горизонтальная линия "otkat_line".
// если ордер buy - ниже. на величину otkat
// если ордер sell - выше
// при достижении ценой этой горизонтальной линии,
// выставляеться ордер на расстояние order

extern double bez = 15;
extern double tral_step = 15;
extern double tral_start = 10;

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

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

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double trend = iCustom (Symbol(),0,"trend",trend_period,0,0);
string = "otkat_line"; // объявлял otkat_line. неудачно...
//покупка
if (trend>trend_lev_b && buy==1 )
{
OrderSend (Symbol(),OP_BUY, lots, Ask,3, Bid-sl*Point, Bid+tp*Point, Aqua);
ObjectCreate ( "otkat_line", OBJ_HLINE, 0 );// хотел что бы рисовал горизонтальную линию
}
//продажа
if (trend<trend_lev_s && sell==1 )
{
OrderSend (Symbol(),OP_SELL,lots, Bid,3, Bid-sl*Point, Bid+tp*Point, LightGreen );//не торгует. bid и ask
//много раз менял
}

//----
return(0);
}
//+------------------------------------------------------------------+
 

Попробуйте вот так:

double trend = iCustom (Symbol(),0,"trend",trend_period,0,0);
Print("trend = ",trend);
Строка принта покажет в журнале какое же значение лежит в переменной trend - мож там вообще нули (мож Вы iCustom() запросили не правильно...) Кто ж его знает...
 

не правильно прописанны стопы и профиты

OrderSend (Symbol(),OP_SELL,lots, Bid,3, Bid-sl*Point, Bid+tp*Point, LightGreen );//не торгует. bid и ask

а должно быть так

OrderSend (Symbol(),OP_SELL,lots, Bid,3, Ask+sl*Point, Bid-tp*Point, LightGreen );

 

не правильно прописанна линия - должно быть например так

double PriseSell = Bid;

string otkat_line ="LiniyaOtkata";

ObjectCreate(otkat_line, OBJ_HLINE, 0, 0, 0);
ObjectSet(otkat_line, OBJPROP_PRICE1, PriseSell);

 
elmucon:

не правильно прописанна линия - должно быть например так

double PriseSell = Bid;

string otkat_line ="LiniyaOtkata";

ObjectCreate(otkat_line, OBJ_HLINE, 0, 0, 0);
ObjectSet(otkat_line, OBJPROP_PRICE1, PriseSell);



спасибо за советы.

буду пробовать.

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