Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не знаешь язык собеседника? Функция автоматического перевода тебе поможет!
TESKATLIPOKA
146
TESKATLIPOKA 2011.09.10 20:16 

добрый день.

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

//+------------------------------------------------------------------+
//| trend123.mq4 |
//| я |
//| |
//+------------------------------------------------------------------+
#property copyright "я"
#property link ""

//--- input parameters

extern bool dobuy = true; // разрешение вообще покупать
extern bool dosell = true; // разрешение вообще продавать


extern double Lot = 0.1;
extern int slippage = 3;
extern double take_profit = 100;
extern double stop_loss = 100;

//--------------------------------------------------
extern int open_period1 = 50;
extern int open_period2 = 40;
extern int open_period3 = 30;
//--------------------------------------------------
extern double do_buy1 = 0.1; // open_number_buy1 = 0.1;
extern double do_buy2 = 0.1;
extern double do_buy3 = 0.1;
extern double do_sell1 = -0.1;
extern double do_sell2 = -0.1;
extern double do_sell3 = -0.1;

//------------------------------------
int magic = 9;

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

//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double trend_value1 = iCustom(Symbol(),0,"trend 1",open_period1,0,0);
double trend_value2 = iCustom(Symbol(),0,"trend 2",open_period2,0,0);
double trend_value3 = iCustom(Symbol(),0,"trend 3",open_period3,0,0);
//-----------------
if( do_buy1 && trend_value1 >= do_buy1 && trend_value2 >= do_buy2 && trend_value3 >= do_buy3)
{

}
//------------------------------
if( do_sell1 && trend_value1 <= do_sell1 && trend_value2 <= do_sell2 && trend_value3 <= do_sell3)
{

}

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

// ФУНКЦИЯ ОТПРАВЛЯЕТ ОРДЕРА НА ПОКУПКУ И ПРОДАЖУ
void fOpenOrder(int order_type)

//---------------------------------------------------------
if(order_type==0)
{
//-------------------------------------
if(dobuy)
{
RefreshRates();
if(stop_loss==0) { SL = 0; }else{ SL = Bid-stop_loss; }
if(take_profit==0) { TP = 0; }else{ TP = Bid+take_profit; }
fSend(OP_BUY,Ask,SL,TP);
}
//---------------------------------------
if(order_type==1)
{
if(dosell) {
RefreshRates();
if(stop_loss==0) { SL = 0; }else{ SL = Ask+stop_loss; }
if(take_profit==0) { TP = 0; }else{ TP = Ask-take_profit; }
fSend(OP_SELL,Bid,SL,TP);
}

}
PlaySound("alert.wav");
//-------------------------------------------

Alexander
2441
Alexander 2011.09.10 20:30  

Как же он будет торговать, если

if( do_buy1 && trend_value1 >= do_buy1 && trend_value2 >= do_buy2 && trend_value3 >= do_buy3)
 { 

 }
TESKATLIPOKA
146
TESKATLIPOKA 2011.09.10 20:42  
Roger:

Как же он будет торговать, если

да с этим то и мучаюсь, я ведь только начал. я эти строки взял с советника, который мне делали на заказ. надоело по пустякам обращаться. и пробую научиться. в книжке по mql - не особо понятно.

а как правильно что бы открывал ордера?

Alexander
2441
Alexander 2011.09.10 20:52  
apollo440:

да с этим то и мучаюсь, я ведь только начал. я эти строки взял с советника, который мне делали на заказ. надоело по пустякам обращаться. и пробую научиться. в книжке по mql - не особо понятно.

а как правильно что бы открывал ордера?


Ну, хотя бы

if( do_buy1 && trend_value1 >= do_buy1 && trend_value2 >= do_buy2 && trend_value3 >= do_buy3)
 { 
   fOpenOrder(0);
 }

А вообще надо бы еще почитать.

TESKATLIPOKA
146
TESKATLIPOKA 2011.09.10 20:54  
Roger:


Ну, хотя бы

А вообще надо бы еще почитать.

надо. это и делаю ) вот согласно учебнику, я бы сделал так

if
( trend_value1>do_buy1;
trend_value2>do_buy2;
trend_value3>do_buy3;
dobuy = true; )


{
OrderSend (Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
}

Alexander
2441
Alexander 2011.09.10 20:57  
Уже лучше.:) У твоего брокера цены с 4-мя знаками после запятой или с 5-ю?
TESKATLIPOKA
146
TESKATLIPOKA 2011.09.10 20:59  
Roger:
Уже лучше.:) У твоего брокера цены с 4-мя знаками после запятой или с 5-ю?



4.

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

она намного проще, чем мне подсказывали.... зачем огород городить тогда...

Alexander
2441
Alexander 2011.09.10 21:03  
apollo440:


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

она намного проще, чем мне подсказывали.... зачем огород городить тогда...


Должна, только чтобы условия наступали.
TESKATLIPOKA
146
TESKATLIPOKA 2011.09.10 21:08  
Roger:

Должна, только чтобы условия наступали.



спасибо )

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

Victor Nikolaev
Модератор
14046
Victor Nikolaev 2011.09.10 21:36  
Roger:

Как же он будет торговать, если


Переменная do_buy1 имеет действительное, а не логическое значение.
TESKATLIPOKA
146
TESKATLIPOKA 2011.09.10 21:58  
Vinin:

Переменная do_buy1 имеет действительное, а не логическое значение.



мдя... чайник я ) буду думать как это исправить.

вот последняя версия. облегченная.

может эта правильная

//+------------------------------------------------------------------+
//| trend123.mq4 |
//| я |
//| |
//+------------------------------------------------------------------+
#property copyright "я"
#property link ""

//--- input parameters

extern bool dobuy = true; //
extern bool dosell = true; //


extern double Lot = 0.1;
extern int slippage = 3;
extern double take_profit = 100;
extern double stop_loss = 100;

//--------------------------------------------------
extern int open_period1 = 50;
extern int open_period2 = 40;
extern int open_period3 = 30;
//--------------------------------------------------
extern double do_buy1 = 0.1; // open_number_buy1 = 0.1;
extern double do_buy2 = 0.1;
extern double do_buy3 = 0.1;
extern double do_sell1 = -0.1;
extern double do_sell2 = -0.1;
extern double do_sell3 = -0.1;

//------------------------------------
int magic = 9;

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

//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double trend_value1 = iCustom(Symbol(),0,"trend 1",open_period1,0,0);
double trend_value2 = iCustom(Symbol(),0,"trend 2",open_period2,0,0);
double trend_value3 = iCustom(Symbol(),0,"trend 3",open_period3,0,0);

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

// ФУНКЦИЯ ОТПРАВЛЯЕТ ОРДЕРА НА ПОКУПКУ И ПРОДАЖУ

//------------------------------------
if
( trend_value1>do_buy1;
trend_value2>do_buy2;
trend_value3>do_buy3;
dobuy = true; )
{
OrderSend (Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
}
//------------------------
if
( trend_value1<do_sell1;
trend_value2<do_sell2;
trend_value3<do_sell3;
dobuy = true; )
{
OrderSend (Symbol(),OP_SELL,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
}
//------------------------

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