решил сам написать эксперта. исправьте ошибки пожалуйста?

 
// 4 разных индикатора. индикаторы произвольные. не важно какие.
// direction_period
// open_period
// take_profit_period
// stop_loss_period
// смысл советника такой -- если значение индикатора direction_period больше/меньше
//direction_number и значение индикатора open_period больше/меньше open_number
//, идет по выбору - buy_limit/sell_limit/buy/sell.


extern string _="--DIRECTION buy--";
extern double direction_period= 100;
extern double direction_number= 0.01;
// открытие
extern double open_period= 80;
extern double open_number= 8.8;
extern double delta_open= 2
// профит
extern double take_profit_period= 70;
extern double take_profit_number= 8.8;
// лосс
extern double stop_loss_period= 40;
extern double stop_loss_number= 8.8;


extern bool buy= true;
extern bool sell= false;

// не ясно куда вставлять индикаторы
double direction_period= iCustom (0, 0, "direction_period", direction_number, 0,0);
double open_period= iCustom (0, 0, "open_period", open_number, 0,0);
double take_profit_period= iCustom (0, 0, "take_profit_period", take_profit_number, 0,0);
double stop_loss_period= iCustom (0, 0, "stop_loss_period", stop_loss_number, 0,0);


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

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

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double

if (direction_period > direction_number,
open_period = open_number + delta_open || open_period = open_number - delta_open) // здесь думаю, тоже есть ошибки. попробовал написать как понял.


{ bool;
} //бай или селл по выбору вручную. может изначально надо написать buy/sell. этого пока не знаю.

return;
}
 

Тут вам нужно не помогать. А писать советник по новой.

Поскольку, исправление ошибок не имеет смысла, ибо всё вами написанное - одна большая ошибка.

================

индикаторы обычно задаются в функции СТАРТ.

int start() 
 {
double direction_period= iCustom (0, 0, "direction_period", direction_number, 0,0);
 double open_period= iCustom (0, 0, "open_period", open_number, 0,0);
 double take_profit_period= iCustom (0, 0, "take_profit_period", take_profit_number, 0,0);
 double stop_loss_period= iCustom (0, 0, "stop_loss_period", stop_loss_number, 0,0);

Далее, здесь же нужно задать условия открытие позиции:

1. если нет отрытых советником позиций,

2. если значания одного индикатора больше(меньше) или равны значению другого на текущем тике (или баре?)

3. Открываем позицию (для продажи):

 
if (sell=true )       {
 if (OrdersTotal() <1)  {
  if (индюк1 <= индюк2)    {
   ticket=OrderSend(Symbol(),OP_SELL,Lots .....
                    }
                 }
              } 

Примерно так же будет и закрытие по индикаторам.

 
leonid553:

Тут вам нужно не помогать. А писать советник по новой.

Поскольку, исправление ошибок нет не имеет смысла, ибо всё вами написанное - одна большая ошибка.

================

индикаторы обычно задаются в функции СТАРТ.

Далее, здесь же нужно задать условия открытие позиции:

1. если нет отрытых советником позиций,

2. если значания одного индикатора больше(меньше) или равны значению другого на текущем тике (или баре?)

3. Открываем позицию (для продажи):

Примерно так же будет и закрытие по индикаторам.




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

я пробую научится самому программировать. по принципу, хочешь что бы сделано было хорошо- сделай сам.

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

 

//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
// индикаторы обычно задаются в функции СТАРТ.
int start()
{
double direction_period= iCustom (0, 0, "direction_period", direction_number, 0,0);
double open_period= iCustom (0, 0, "open_period", open_number, 0,0);
double take_profit_period= iCustom (0, 0, "take_profit_period", take_profit_number, 0,0);
double stop_loss_period= iCustom (0, 0, "stop_loss_period", stop_loss_number, 0,0);

//Далее, здесь же нужно задать условия открытие позиции:
//1. если нет отрытых советником позиций,
//2. если значания одного индикатора больше(меньше) или равны значению другого на текущем тике (или баре?)
//3. Открываем позицию (для продажи):

// мои пояснения:
// ордер открывается когда значение в индикаторе больше определенного значения на нем.
// а не когда значение одного индикатора выше/ниже другого.
if ( buy=true )
{
if (OrdersTotal() <1)
{
if ( direction_period >= direction_number)
{
if ( open_period >= open_number ) {
ticket=OrderSend(Symbol(), OP_BUY, Lots .....
}
}
}

return;
}

надеюсь так правильно?

 
TESKATLIPOKA:

//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
// индикаторы обычно задаются в функции СТАРТ.
int start()
{
double direction_period= iCustom (0, 0, "direction_period", direction_number, 0,0);
double open_period= iCustom (0, 0, "open_period", open_number, 0,0);
double take_profit_period= iCustom (0, 0, "take_profit_period", take_profit_number, 0,0);
double stop_loss_period= iCustom (0, 0, "stop_loss_period", stop_loss_number, 0,0);

//Далее, здесь же нужно задать условия открытие позиции:
//1. если нет отрытых советником позиций,
//2. если значания одного индикатора больше(меньше) или равны значению другого на текущем тике (или баре?)
//3. Открываем позицию (для продажи):

// мои пояснения:
// ордер открываеться когда значение в индикаторе больше определенного значения на нем.
// а не когда значение одного индикатора выше/ниже жругого.
if ( buy=true ) {
if (OrdersTotal() <1) {
if ( direction_period >= direction_number ) {
ticket=OrderSend(Symbol(), OP_BUY, Lots .....
}
}
}

return;
}

надеюсь так правильно?


Учебник и документацию читать не пробовали? Говорят - помогает.
 
Roman.:

Учебник и документацию читать не пробовали? Говорят - помогает.



пробовали. но я только начал.

я вот хирург, и это примерно то, что я студенту примерно так отвечу...

каждый силен в своей области. стоит ли ёрничать - не нравиться -идите мимо...

 
TESKATLIPOKA:



пробовали. но я только начал.

я вот хирург, и это примерно то, что я студенту примерно так отвечу...

каждый силен в своей области. стоит ли ёрничать - не нравиться -идите мимо...


В таком случае, для начала ознакомьтесь с этим, кроме этого, вставляйте код в редакторе правильно - через SRC (в меню вверху) либо же посредством одновременного нажатия клавиш CTRL+ALT+M, в противном случае Ваша галиматья сливается в одно серое месиво.
 
Roman.:

В таком случае, для начала ознакомьтесь с этим, кроме этого, вставляйте код в редакторе правильно - через SRC (в меню вверху) либо же посредством одновременного нажатия клавиш CTRL+ALT+M, в противном случае Ваша галиматья сливается в одно серое месиво.


учту конечно. спасибо
 
TESKATLIPOKA:



1....я вот хирург...

2. каждый силен в своей области. стоит ли ёрничать - не нравиться -идите мимо...

1. Поздравляю. Давайте, опустим, звания и регалии... :-)))
2. "... не нравится -идите..." - в жобу.
 
Roman.:

В таком случае, для начала ознакомьтесь с этим, кроме этого, вставляйте код в редакторе правильно - через SRC (в меню вверху) либо же посредством одновременного нажатия клавиш CTRL+ALT+M, в противном случае Ваша галиматья сливается в одно серое месиво.



ну и это не моя галиматья... может ее и нет.

искать- в вашей ссылке ответ на свой вопрос... забавное дело.

 
Roman.:
1. Поздравляю. Давайте, опустим, звания и регалии... :-)))
2. "... не нравится -идите..." - идите в жобу.

пытаешься с вам общаться по-человечески, а вам такой диалог недоступен...

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