Тут вам нужно не помогать. А писать советник по новой.
Поскольку, исправление ошибок не имеет смысла, ибо всё вами написанное - одна большая ошибка.
================
индикаторы обычно задаются в функции СТАРТ.
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 ..... } } }
Примерно так же будет и закрытие по индикаторам.
Тут вам нужно не помогать. А писать советник по новой.
Поскольку, исправление ошибок нет не имеет смысла, ибо всё вами написанное - одна большая ошибка.
================
индикаторы обычно задаются в функции СТАРТ.
Далее, здесь же нужно задать условия открытие позиции:
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;
}
надеюсь так правильно?
//+------------------------------------------------------------------+
//| 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;
}
надеюсь так правильно?
Учебник и документацию читать не пробовали? Говорят - помогает.
пробовали. но я только начал.
я вот хирург, и это примерно то, что я студенту примерно так отвечу...
каждый силен в своей области. стоит ли ёрничать - не нравиться -идите мимо...
пробовали. но я только начал.
я вот хирург, и это примерно то, что я студенту примерно так отвечу...
каждый силен в своей области. стоит ли ёрничать - не нравиться -идите мимо...
В таком случае, для начала ознакомьтесь с этим, кроме этого, вставляйте код в редакторе правильно - через SRC (в меню вверху) либо же посредством одновременного нажатия клавиш CTRL+ALT+M, в противном случае Ваша галиматья сливается в одно серое месиво.
В таком случае, для начала ознакомьтесь с этим, кроме этого, вставляйте код в редакторе правильно - через SRC (в меню вверху) либо же посредством одновременного нажатия клавиш CTRL+ALT+M, в противном случае Ваша галиматья сливается в одно серое месиво.
ну и это не моя галиматья... может ее и нет.
искать- в вашей ссылке ответ на свой вопрос... забавное дело.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
// 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;
}