neonobblu: Подскажите мне, пожалуйста. Я подключился к сигналу и соответственно у меня копируются его открытые ордера, могу ли я как то изменить объем лота которым он торгует. Если да то как?
Гляньте плз, по четвёрке - там похоже не достучаться...
С массивами работаю - надо писать время прихода тика в массив - для примера - пишу бид. На каждом тике. Делаю всё согласно билетов, за что благодарен Artyom Trishkin. Не всё получается. Второй день бьюсь... Принтует
Artyom Trishkin: Вижу, что в init переменная SIZE имеет значение 0, и какой тогда размер массива? Далее опять же в start SIZE тоже 0 ... Что в журнале-то?
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---//--- Запись ID графика
gv_chart_id_name=Prefix+"_chart_id"; // имя GV терминалаlong chart_id=get.GetChartID(symbol); // id текущего графикаdouble chart_id_double=ToDouble(chart_id); // id в представлении doubleif(chart_id>=0) { // chart_id==0 в тестереif(!GlobalVariableCheck(gv_chart_id_name)) // Если GV-переменная удаленаGlobalVariableSet(gv_chart_id_name,chart_id_double); // создадим опять
}
else graph.Message("Чё-та нету chart_id : Symbol()="+symbol+", chart_id="+IntegerToString(chart_id));
//--- работа с тиками текущего графикаif(SymbolInfoTick(symbol,struct_tick)) {
double tick_bid=struct_tick.bid;
datetime tick_time=struct_tick.time;
WorkOnTick(symbol,tick_bid,tick_time,slowPeriod);
}
//---
}
//+------------------------------------------------------------------+
В функции ниже организована работа с нужным символом, хранящемся в переменной symbol, если нужна работа с другим символом - запишем туда его. Функция FillArrays() как раз и заполняет массивы.
//+------------------------------------------------------------------+void WorkOnTick(string sy, double symbol_bid, datetime symbol_time, int limit) {
long chart_id=get.GetChartID(sy);
int index_symbol=get.PositionsSymbolInList(sy); // позиция символа в спискеdouble pt=SymbolInfoDouble(sy,SYMBOL_POINT);
double pa=SymbolInfoDouble(sy,SYMBOL_ASK);
double pb=SymbolInfoDouble(sy,SYMBOL_BID);
int stoplevel=(int)MarketInfo(sy,MODE_STOPLEVEL);
int dg=(int)SymbolInfoInteger(sy,SYMBOL_DIGITS);
//--- заполним массивы
FillArrays(sy,symbol_bid,symbol_time,table_price,table_time);
//--- расчёт среднего изменения цен тиковdouble avg_change_price=AverageChangePrice(index_symbol,limit,slowPeriod,table_price);
//--- вывод информации на график
wtf(index_symbol,avg_change_price,slowPeriod,table_price,table_time);
return;
Trailing(sy, 50, 3, magic);
}
//+------------------------------------------------------------------+
Мне нужно было так заполнять массивы тиками:
//+------------------------------------------------------------------+void FillArrays(string sy, double price, datetime time, double &mass_price[][], datetime &mass_time[][]) {
//--- сместим данные в массивах влевоint index_symbol=get.PositionsSymbolInList(sy); // позиция символа в спискеfor(int i=99; i>0; i--) { // сместим данные в массивах влево
mass_price[index_symbol][i]=mass_price[index_symbol][i-1];
mass_time[index_symbol][i]=mass_time[index_symbol][i-1];
}
//--- запишем товый тик в массивы
mass_price[index_symbol][0]=price;
mass_time[index_symbol][0]=time;
}
//+------------------------------------------------------------------+
Что-то я не пойму - SIZE равен нулю, а зачем сначала изменять размер массива, а уже потом увеличивать SIZE ? Бардак какой-то...
Я как-то делал заполнение массивов тиками для тикового советника, определяющего интенсивность и размах тиков. Повырезал кусочки для примеров:
В функции ниже организована работа с нужным символом, хранящемся в переменной symbol, если нужна работа с другим символом - запишем туда его. Функция FillArrays() как раз и заполняет массивы.
Мне нужно было так заполнять массивы тиками:
мне нужна средняя скорость 1 тик/в 1 сек за н - тиков. Т.е. н-тиков поступают за к-секунд, к/н получаются тики в секунду. Эту скорость необходимо мерить на каждом тике поступающем. Она будет меняться с каждым последующим тиком.
Подскажите мне, пожалуйста. Я подключился к сигналу и соответственно у меня копируются его открытые ордера, могу ли я как то изменить объем лота которым он торгует. Если да то как?
На счете провайдера все сделки совершаются объемом в 0.1 лота. Я хочу, чтобы у меня эти сделки копировались с большим объемом, например, 0.3 лота. Могу ли я поднять объем самостоятельно?
Можно ли самому создать правила копирования сделок символа Провайдера на Символ Подписчика?
Гляньте плз, по четвёрке - там похоже не достучаться...
С массивами работаю - надо писать время прихода тика в массив - для примера - пишу бид. На каждом тике. Делаю всё согласно билетов, за что благодарен Artyom Trishkin. Не всё получается. Второй день бьюсь... Принтует
нули.
https://www.mql5.com/ru/forum/145455/page913#1017464
Благодарю.
Вижу, что в init переменная SIZE имеет значение 0, и какой тогда размер массива? Далее опять же в start SIZE тоже 0 ... Что в журнале-то?
И так тоже нули... Ничё понять не могу...
На счете провайдера все сделки совершаются объемом в 0.1 лота. Я хочу, чтобы у меня эти сделки копировались с большим объемом, например, 0.3 лота. Могу ли я поднять объем самостоятельно?
Можно ли самому создать правила копирования сделок символа Провайдера на Символ Подписчика?
И так тоже нули... Ничё понять не могу...
Так я ж намекнул на то, что SIZE нужно сначала увеличить, чтобы не ноль был, а уже потом размер массива менять.
:-)
Спс.
Работает - кому надо - пользуйтесь.
:-)
Спс.
Работает - кому надо - пользуйтесь.
Что-то я не пойму - SIZE равен нулю, а зачем сначала изменять размер массива, а уже потом увеличивать SIZE ? Бардак какой-то...
Я как-то делал заполнение массивов тиками для тикового советника, определяющего интенсивность и размах тиков. Повырезал кусочки для примеров:
В функции ниже организована работа с нужным символом, хранящемся в переменной symbol, если нужна работа с другим символом - запишем туда его. Функция FillArrays() как раз и заполняет массивы.
Мне нужно было так заполнять массивы тиками:
Что-то я не пойму - SIZE равен нулю, а зачем сначала изменять размер массива, а уже потом увеличивать SIZE ? Бардак какой-то...
Я как-то делал заполнение массивов тиками для тикового советника, определяющего интенсивность и размах тиков. Повырезал кусочки для примеров:
В функции ниже организована работа с нужным символом, хранящемся в переменной symbol, если нужна работа с другим символом - запишем туда его. Функция FillArrays() как раз и заполняет массивы.
Мне нужно было так заполнять массивы тиками:
мне нужна средняя скорость 1 тик/в 1 сек за н - тиков. Т.е. н-тиков поступают за к-секунд, к/н получаются тики в секунду. Эту скорость необходимо мерить на каждом тике поступающем. Она будет меняться с каждым последующим тиком.
подскажите- в мт4 можно гдето часы увидеть? желательно с секундной стрелкой.
или может есть советник такой? выводить время куданить в самую нижнюю строку терминала