Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 794

 
AlexeyVik:
Я тебе уже сказал, пользуйся чем тебе больше нравится. Пусть твой код проверяет не будет-ли текущее время меньше вчерашнего, вдруг время вспять пошло. И пусть на уровне глобальных переменных будут static переменные. А остальное ничего нового и быть не может. Ведь появление нового бара можно определить только временем открытия текущего бара и временем предыдущего. Всё остальное можно придумать только через анальное отверстие. Ты ждал чего-то сверхъестественного? Разница только в том, что я пользую свой код, который правлю тогда и как мне будет удобно, а ты составляешь коды из кубиков с оговоркой что это старый код, как было так и работает и трогать работающий код нельзя потому, что есть такое дерьмово-железное правило.
evillive:
поздравляю, это то же самое по логике работы. использовал и в таком виде, разницы нет. стоило из-за этого сраться...

Парни, имхенько, вы оба неправы. В MQL режим управления памятью Static работает очень своеобразно. Инициализация переменных происходит ЕДИНСТВЕННЫЙ раз за весь период работы программы - непосредственно перед первым вызовом init(). 

Отсюда неизбежно следует, что ваши программы всегда ошибаются в момент изменения параметров советника, например.  

 
tara:

Парни, имхенько, вы оба неправы. В MQL режим управления памятью Static работает очень своеобразно. Инициализация переменных происходит ЕДИНСТВЕННЫЙ раз за весь период работы программы - непосредственно перед первым вызовом init(). 

Отсюда неизбежно следует, что ваши программы всегда ошибаются в момент изменения параметров советника, например.  

Потому я сейчас использую функцию определения нового бара из этой статьи
 
Да просто уберите атрибут Static и оставьте все, как есть. Будет глобальная переменная... 
 
привет всем! ребят, как узнать минимальную дистанцию установки отложного ордера?
 
CJIeCaPb:
привет всем! ребят, как узнать минимальную дистанцию установки отложного ордера?
   int lv=(int)SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL);
   int sp=(int)SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);
   int stopLevel=(lv==0)?sp*2:lv;

Ну, или функция:

//+------------------------------------------------------------------+
int StopLevel(string sy) {
   int lv=(int)SymbolInfoInteger(sy,SYMBOL_TRADE_STOPS_LEVEL);
   int sp=(int)SymbolInfoInteger(sy,SYMBOL_SPREAD);
   return((lv==0)?sp*2:lv);
   }
//+------------------------------------------------------------------+

Ну и вызываем на каждом тике, например:

int stopLevel=StopLevel(symbol);

string symbol - переменная, хранящая название нужного символа, ну либо текущий: Symbol()

 

товарищи подскажите я хочу когда мой ордер закрылся открылся вновь в том же самом месте. через какую операцию и как???

то есть он был отложенным при закрытие стал отложенным на том же уровне где он был.

 
logut:

товарищи подскажите я хочу когда мой ордер закрылся открылся вновь в том же самом месте. через какую операцию и как???

то есть он был отложенным при закрытие стал отложенным на том же уровне где он был.

Запятые расставь, а то непонятно, что хочешь!
 
borilunad:
Запятые расставь, а то непонятно, что хочешь!

+100500. Даж отвечать нет желания на такие опусы. Ощущение, что придётся долго-долго объяснять на пальцах абсолютно безграмотному третьекласснику.

Раз "чилавек ниумеит граматна песать то пряма хочица ево в школу атправить апять а не расказывать што правильна делать нужна" ...

ЗЫ. Технический, специализированный ресурс, блин...

 
artmedia70:

Ну, или функция:

Ну и вызываем на каждом тике, например:

string symbol - переменная, хранящая название нужного символа, ну либо текущий: Symbol()

Спасибо)
 
borilunad:
Запятые расставь, а то непонятно, что хочешь!

товарищи, подскажите, я хочу, когда мой ордер закрылся, то он должен открыться вновь в том же самом месте. через какую операцию и как???

суть теперь ясна??? 

Причина обращения: