поменять close на open. Если начнёт по Open считать, то копайте в эту сторону как сделать смену этого значения. Я сейчас не могу бета-версию терминала запустить, чтобы поглядеть в его редакторе.
Предварительно ещё тут замените:
//--- counting from 0 to rates_totalArraySetAsSeries(ExtLineBuffer,false);
ArraySetAsSeries(close,false);
//--- first calculation or number of bars was changed
написал советника, но он ваще не работает)))) или неправильно работает. сколько уже ковыряюсь, исправляю многое, но, тем не менее, советник не работает.
вот фрагмент расчета торговых решений по индикатору RSI :
int Ticket1_RSI=-1, Ticket2_RSI=-1; // Номера открытых ордеровexterndouble Lot=0.01; // Объем лотаint RSI() // Функция RSI
{
double T, P;
double RSI_0, RSI_1, RSI_2; // Значения индикатора RSI//------------------Значения индикатора---------------------------------------
RSI_0=iRSI(Symbol(), 0, 14, PRICE_CLOSE, 0); // Получаем данные от RSI
RSI_1=iRSI(Symbol(), 0, 14, PRICE_CLOSE, 1); // Получаем данные от RSI
RSI_2=iRSI(Symbol(), 0, 14, PRICE_CLOSE, 2); // Получаем данные от RSI //------------------Условие на продажу--------------------------------- if (RSI_1 > RSI_0 > 70 && RSI_1 > RSI_2) // Если индикатор превышает значение 70 и виден поворот вниз
{
if (Ticket2_RSI > 0) // Если имеется ордер на покупку
OrderClose(Ticket2_RSI, OrderLots(), Bid, 0, 0); // Закрытие ордера на покупкуif (Ticket1_RSI <= 0) // Если ордера на продажу нет
{
Ticket1_RSI=OrderSend(Symbol(), OP_SELL, Lot, Bid, 2, 0, 0); // Открытие ордера на продажуif (OrderSelect(Ticket1_RSI, SELECT_BY_TICKET)==true)
{
T=OrderOpenTime();
P=OrderOpenPrice();
ObjectCreate("Arrow", 22, 0, T, P); // Создание индикатора ордера
ObjectSet("Arrow", OBJPROP_COLOR, IndianRed); // Изменение цвета в мутно-красноватый
ObjectSet("Arrow", OBJPROP_ARROWCODE, 242); // Направление стрелки внизObjectCreate("Text", 21, 0, T, P); // Создание текстового объекта
ObjectSetText("Text", "Open sell-order by RSI", 6, "Times New Roman", Navy); // Текст, шрифт, стиль, цвет
}
}
}
//-------------------Условие на покупку-------------------------------- if (RSI_1 < RSI_0 < 30 && RSI_1 < RSI_2) // Если индикатор ниже значения 30 и виден поворот вверх
{
if (Ticket1_RSI > 0) // Если имеется ордер на продажу
OrderClose(Ticket1_RSI, OrderLots(), Ask, 0, 0); // Закрытие ордера на продажуif (Ticket2_RSI <= 0) // Если ордера на продажу нет
{
Ticket2_RSI=OrderSend(Symbol(), OP_BUY, Lot, Ask, 2, 0, 0); // Открытие ордера на покупкуif (OrderSelect(Ticket2_RSI, SELECT_BY_TICKET)==true)
{
T=OrderOpenTime();
P=OrderOpenPrice();
ObjectCreate("Arrow", 22, 0, T, P); // Создание индикатора ордера
ObjectSet("Arrow", OBJPROP_COLOR, LawnGreen); // Изменение цвета в ярко-зеленый
ObjectSet("Arrow", OBJPROP_ARROWCODE, 241); // Направление стрелки вверхObjectCreate("Text", 21, 0, T, P); // Создание текстового объекта
ObjectSetText("Text", "Open buy-order by RSI", 6, "Times New Roman", Navy); // Текст, шрифт, стиль, цвет
}
}
}
//-------------------------------------------------------------------- return;
}
дело в том, что советник сразу открывает ордер на покупку, несмотря на значение индикатора, и никак не хочет закрывать его. Объекты типа текста и стрелки не появляются.
написал советника, но он ваще не работает)))) или неправильно работает. сколько уже ковыряюсь, исправляю многое, но, тем не менее, советник не работает.
вот фрагмент расчета торговых решений по индикатору RSI :
дело в том, что советник сразу открывает ордер на покупку, несмотря на значение индикатора, и никак не хочет закрывать его. Объекты типа текста и стрелки не появляются.
помогите разобраться)) просто сам новичок в этом
if (RSI_1 > RSI_0 && RSI_0 > 70 && RSI_1 > RSI_2) // Если индикатор превышает значение 70 и виден поворот вниз
то есть в условиях надо отдельно писать каждое неравенство? если как то обобщать, то будет восприниматься как ошибка? тогда почему при компиляции программа говорит, что ошибок нет?
то есть в условиях надо отдельно писать каждое неравенство? если как то обобщать, то будет восприниматься как ошибка? тогда почему при компиляции программа говорит, что ошибок нет?
Ошибки и нету, просто Вы получаете не тот результат, который ждете.
Integer: Нет смысла менять Close на Open, будут незначительные изменения. Проще не заморачиваться такой ерундой, да брать данные со сформированного бара.
Ошибки и нету, просто Вы получаете не тот результат, который ждете.
все)) тут я немного разобрался) один ордер сразу открывался без дальнейших изменений, потому что в строке:
RSI_1=iRSI(Symbol(), 0, 14, PRICE_CLOSE, 1); // Получаем данные от RSI
необходимо прописывать NULL вместо Symbol(), так как идет несоответствие в типах переменных. из-за этого у меня RSI как с нулевым значением воспринимался, вот сразу и открывал, потому что условие работало. а в дальнейшем RSI так и был нулевым, и ордер оставался без изменений.
сейчас исправил, все нормально работает.
вот только объекты создаются один раз на первой сделке. потом выдает ошибку, мол объект уже существует. есть какие нибудь графические объекты, которые можно выводить на график с каждой сделкой?
Нужно в код добавить в данной ситуации. Создаёте внешнюю переменную, например Appled_Price.
И в коде все PRICE_CLOSE меняете на Appled_Price.
Ах, да, прошу прощения, я про новые билды, а там код немного непривычный.
В том-то и дело, нету в коде цены в свободном виде, всё на массивах, тупо заменить не получится, пробовал (((
Да и если бы полчилось, как сделать выбор из выпадающего списка (как на картинке из моего вопроса)?
В том-то и дело, нету в коде цены в свободном виде, тупо заменить не получится (((
Попробуйте тут
поменять close на open. Если начнёт по Open считать, то копайте в эту сторону как сделать смену этого значения. Я сейчас не могу бета-версию терминала запустить, чтобы поглядеть в его редакторе.
Предварительно ещё тут замените:
приветствую всех))
написал советника, но он ваще не работает)))) или неправильно работает. сколько уже ковыряюсь, исправляю многое, но, тем не менее, советник не работает.
вот фрагмент расчета торговых решений по индикатору RSI :
//--------------------Данные------------------------------------
дело в том, что советник сразу открывает ордер на покупку, несмотря на значение индикатора, и никак не хочет закрывать его. Объекты типа текста и стрелки не появляются.
помогите разобраться)) просто сам новичок в этом
приветствую всех))
написал советника, но он ваще не работает)))) или неправильно работает. сколько уже ковыряюсь, исправляю многое, но, тем не менее, советник не работает.
вот фрагмент расчета торговых решений по индикатору RSI :
//--------------------Данные------------------------------------
дело в том, что советник сразу открывает ордер на покупку, несмотря на значение индикатора, и никак не хочет закрывать его. Объекты типа текста и стрелки не появляются.
помогите разобраться)) просто сам новичок в этом
то есть в условиях надо отдельно писать каждое неравенство? если как то обобщать, то будет восприниматься как ошибка? тогда почему при компиляции программа говорит, что ошибок нет?
то есть в условиях надо отдельно писать каждое неравенство? если как то обобщать, то будет восприниматься как ошибка? тогда почему при компиляции программа говорит, что ошибок нет?
Ошибки и нету, просто Вы получаете не тот результат, который ждете.
...Как искать в такой ситуации причину?
Чисто случайно наткнулся. Упрощать надо. Закомментировать все, раскоментировать первый импорт, откомпилировать, повызывать функции, и т.д.
Нет смысла менять Close на Open, будут незначительные изменения. Проще не заморачиваться такой ерундой, да брать данные со сформированного бара.
Ошибки и нету, просто Вы получаете не тот результат, который ждете.
все)) тут я немного разобрался) один ордер сразу открывался без дальнейших изменений, потому что в строке:
необходимо прописывать NULL вместо Symbol(), так как идет несоответствие в типах переменных. из-за этого у меня RSI как с нулевым значением воспринимался, вот сразу и открывал, потому что условие работало. а в дальнейшем RSI так и был нулевым, и ордер оставался без изменений.
сейчас исправил, все нормально работает.
вот только объекты создаются один раз на первой сделке. потом выдает ошибку, мол объект уже существует. есть какие нибудь графические объекты, которые можно выводить на график с каждой сделкой?