За***чите частыми запросами в реальной торговле своего брокера с последующим запретом от него для Вас автоматической торговли - торговать самому только телефоном придется.
Модифицируйте ордера через определенное количество пунктов (интервал), например, 50 или 100 - это при пятизнаке (допустим, при движении цены в Вашу сторону - модифи ордер), и все будет нормуль. :-))) ИМХО, конечно же.
В инициализирующей последовательности допускается пропуск одной или нескольких констант. В этом случае соответствующие элементы массивов числовых типов инициализируются нолём, а элементы массивов типа string инициализируются строковым значением "" (открывающая и закрывающая двойная кавычка без промежутка), т.е. пустой строкой (не путать с пробелом).
Вопрос 1: Что происходит элементами типа bool при пропуске?
Идея следующая: создаем одномерный массив флагов параметров открытия сделки, следовательно
bool Open[20] {par1,par2,par3....,par20}
if (MA1>MA2) par1=true;
if (MA7>MA8) par2=true; ...
if (ma33>ma55) par20=true;
Кто сталкивался с подобными решениями - подскажите:
2 - направление верное?
3- как дальше записать варианты параметров типа if (Open [12] {1,0,0,1,1...,0 } ) OrderSend() и т.д. - правильно?
поможите плиз... в советнике есть функция проверки открытых ордеров ..одновременно может быть открыт один ордер...но при вписывание размера стопа на прямую в момент открытия ордера выдает ошибку 130...например было так
ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,100,Bid-TakeProfit*Point,0,16384,0,Red); ...выдает ошибку 130 в тестере
дц альпари...может нужно модифицировать после открытия ордер и выставить стоп?..подскажите как примерно можно это сделать или укажите на советник где это сделано...пожалуйсто
алпари не открывает сделки со стоплоссами и тейками
int OrderStatus() {
int z1=0, z2=0; // порядок для массиваint i, k=OrdersTotal();
for (i=1; i<=k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
TicketBS[z1]=OrderTicket(); // присваем массиву под 1 ячейкой первый найденный ордер тикет
z1++;
}
if (OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
TicketSS[z2]=OrderTicket();
z2++;
}
}
}
}
Кто может помочь, почему не присваивает значения Ордертикетов в массив TicketBS[] и TicketSS[] ??? пишет всегда 0...
и как тебе сказать как чтото там записать правильно если непонятна сама задача
1. направление хода мысли верное?
2. как сравнить варианты параметров с заданным массивом? Т.е. создали массив с правильными параметрами. Например, что бы не писать if((MA1>MA2)&&(MA7>MA8)&& ....) а использовать вариант записи массива для открытия ордера тип12 Open [12] {1,1,1,0,1...,0 }, соответственно набор параметров я вляется условием открытия ордера тип12.
что это? элементами пользовательских массивов являются переменные, а у тебя почемуто тело тут (фигурные скобки)
Инициализация массива
Массив может быть инициализирован только константами соответствующего типа. Одномерные и многомерные массивы инициализируются одномерной последовательностью констант, перечисленных через запятую. Последовательность обрамляется фигурными скобками: boolMas_b[5] = {false, true, false, true, true}
ты хочешь запомнить параметры для открытия ордера? для этого надо будет иметь несколько переменных bool, для каждого параметра, чтоб проверять соответствует ли им рынок
При работе советника выскакивают такие ошибки:
При этом были моменты, когда ордера либо не закрывались, либо не открывались в определенных моментах.
Насколько несработка закрытий/открытий связана с этими ошибками? Как эти ошибки обойти (желательно без замены терминала на MT5)?
Смотрите тут и тут... ну и тут...
Почему бы не ввести в строку поиска название ошибки и сразу получить ответ?
За***чите частыми запросами в реальной торговле своего брокера с последующим запретом от него для Вас автоматической торговли - торговать самому только телефоном придется.
Модифицируйте ордера через определенное количество пунктов (интервал), например, 50 или 100 - это при пятизнаке (допустим, при движении цены в Вашу сторону - модифи ордер), и все будет нормуль. :-))) ИМХО, конечно же.
Гм...
Полностью одобряю...
Доброго дня! Цитата учебника:
В инициализирующей последовательности допускается пропуск одной или нескольких констант. В этом случае соответствующие элементы массивов числовых типов инициализируются нолём, а элементы массивов типа string инициализируются строковым значением "" (открывающая и закрывающая двойная кавычка без промежутка), т.е. пустой строкой (не путать с пробелом).
Вопрос 1: Что происходит элементами типа bool при пропуске?
Идея следующая: создаем одномерный массив флагов параметров открытия сделки, следовательно
bool Open[20] {par1,par2,par3....,par20}
if (MA1>MA2) par1=true;
if (MA7>MA8) par2=true; ...
if (ma33>ma55) par20=true;
Кто сталкивался с подобными решениями - подскажите:
2 - направление верное?
3- как дальше записать варианты параметров типа if (Open [12] {1,0,0,1,1...,0 } ) OrderSend() и т.д. - правильно?
поможите плиз... в советнике есть функция проверки открытых ордеров ..одновременно может быть открыт один ордер...но при вписывание размера стопа на прямую в момент открытия ордера выдает ошибку 130...например было так
if(вниз>0)
{ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,0,Bid-TakeProfit*Point,0,16384,0,Red);
вписываю стоп размером 100
ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,100,Bid-TakeProfit*Point,0,16384,0,Red); ...выдает ошибку 130 в тестере
дц альпари...может нужно модифицировать после открытия ордер и выставить стоп?..подскажите как примерно можно это сделать или укажите на советник где это сделано...пожалуйсто
алпари не открывает сделки со стоплоссами и тейками
Идея следующая: создаем одномерный массив флагов параметров открытия сделки, следовательно
bool Open[20] {par1,par2,par3....,par20}
if (MA1>MA2) par1=true;
if (MA7>MA8) par2=true; ...
if (ma33>ma55) par20=true;
Кто сталкивался с подобными решениями - подскажите:
2 - направление верное?
3- как дальше записать варианты параметров типа if (Open [12] {1,0,0,1,1...,0 } ) OrderSend() и т.д. - правильно?
какое направление и что значит верное?
и как тебе сказать как чтото там записать правильно если непонятна сама задача
какое направление и что значит верное?
и как тебе сказать как чтото там записать правильно если непонятна сама задача
1. направление хода мысли верное?
2. как сравнить варианты параметров с заданным массивом? Т.е. создали массив с правильными параметрами. Например, что бы не писать if((MA1>MA2)&&(MA7>MA8)&& ....) а использовать вариант записи массива для открытия ордера тип12 Open [12] {1,1,1,0,1...,0 }, соответственно набор параметров я вляется условием открытия ордера тип12.
тип12 Open [12] {1,1,1,0,1...,0 }
что это? элементами пользовательских массивов являются переменные, а у тебя почемуто тело тут (фигурные скобки).
что это? элементами пользовательских массивов являются переменные, а у тебя почемуто тело тут (фигурные скобки)
Инициализация массива
Массив может быть инициализирован только константами соответствующего типа. Одномерные и многомерные массивы инициализируются одномерной последовательностью констант, перечисленных через запятую. Последовательность обрамляется фигурными скобками:
bool Mas_b[5] = { false, true, false, true, true }