Можешь разделить цену на Point и полученное число назначить магиком.
Можешь составить так StrToInteger(StringConcatenate(Day(), Hour()));
Это хорошая идея ... Конечно можноо магик формировать из даты
Это хорошая идея ... Конечно можноо магик формировать из даты
Можешь разделить цену на Point и полученное число назначить магиком.
Можешь составить так StrToInteger(StringConcatenate(Day(), Hour()));
Заранее прошу прощения, я в программировании не силен....
Это получается мне нужно в советнике прописать Magic= StrToInteger(StringConcatenate(Day(), Hour())); ???
Видимо я вчера не совсем точно задачку описал. Чтобы они открывались в разное время (9-10 и 15-16) я поставлю 2 советника. Нужно немножко другое. Чтобы меджик сам себя рисовал из даты. Так сказать сегодня он ставит ордера и присваивает им меджик 1031 (дата) + 1 (заданное мной число) = 10311 (примерно такой) и чтобы завтра он смог открыть в этом же временном диапазоне новые (если предыдущий день не закрылся). Вроде понятно объяснил )))
Насколько это сложно и где это в функции ему прописать? Могу код советника выложить, если надо.
Заранее прошу прощения, я в программировании не силен....
Это получается мне нужно в советнике прописать Magic= StrToInteger(StringConcatenate(Day(), Hour())); ???
Видимо я вчера не совсем точно задачку описал. Чтобы они открывались в разное время (9-10 и 15-16) я поставлю 2 советника. Нужно немножко другое. Чтобы меджик сам себя рисовал из даты. Так сказать сегодня он ставит ордера и присваивает им меджик 1031 (дата) + 1 (заданное мной число) = 10311 (примерно такой) и чтобы завтра он смог открыть в этом же временном диапазоне новые (если предыдущий день не закрылся). Вроде понятно объяснил )))
Насколько это сложно и где это в функции ему прописать? Могу код советника выложить, если надо.
вы хотите удалить гланды через заднепроходное отверстие,
чем вас не устраивает OrderOpenTime()???
вы хотите удалить гланды через заднепроходное отверстие,
чем вас не устраивает OrderOpenTime()???
Я могу и глаз на жо.. пытаться натянуть ))) Суть не в этом.
Что мне даст время открытия ордера? Если цена через 15 минут вернется к этому уровню, то он мне там же новый ордер откроет.... Если я правильно понимаю.... И тогда, во время качелей, так сказать, он мне насшибает их с 10-ок за 2 часа.... А мне нужно, чтобы он открывал 1 сделку на 1 суточный пробой и держал ее до TP или SL, но на следующие сутки открывал еще один от новых хаи/лоу заданного диапазона. И при этом, чтобы не мешал второму советнику открываться по тому же принципу, но в другое время....
Я могу и глаз на жо.. пытаться натянуть ))) Суть не в этом.
Что мне даст время открытия ордера? Если цена через 15 минут вернется к этому уровню, то он мне там же новый ордер откроет.... Если я правильно понимаю.... И тогда, во время качелей, так сказать, он мне насшибает их с 10-ок за 2 часа.... А мне нужно, чтобы он открывал 1 сделку на 1 суточный пробой и держал ее до TP или SL, но на следующие сутки открывал еще один от новых хаи/лоу заданного диапазона. И при этом, чтобы не мешал второму советнику открываться по тому же принципу, но в другое время....
if ( 9 < OrderOpenTime() < 10 ) проходим мимо
else открываем позицию
if ( 15 < OrderOpenTime() < 16 ) проходим мимо
else открываем позицию
зачем вам еще один советник???
Заранее прошу прощения, я в программировании не силен....
Это получается мне нужно в советнике прописать Magic= StrToInteger(StringConcatenate(Day(), Hour())); ???
Видимо я вчера не совсем точно задачку описал. Чтобы они открывались в разное время (9-10 и 15-16) я поставлю 2 советника. Нужно немножко другое. Чтобы меджик сам себя рисовал из даты. Так сказать сегодня он ставит ордера и присваивает им меджик 1031 (дата) + 1 (заданное мной число) = 10311 (примерно такой) и чтобы завтра он смог открыть в этом же временном диапазоне новые (если предыдущий день не закрылся). Вроде понятно объяснил )))
Насколько это сложно и где это в функции ему прописать? Могу код советника выложить, если надо.
Ну так посмотрел-бы приведённые в примере функции и сам мог догадаться заменить Hour() на Month(), поменять местами как это удобно тебе и получил-бы такую строку
Magic= StrToInteger(StringConcatenate(Month(), Day(), 1));
Хотя на мой взгляд 1 лучше писать впереди.
Magic= StrToInteger(StringConcatenate(1, Month(), Day()));
Но это предложение не проверялось, экспромт, так сказать... Если потом надо будет читать этот магик и извлекать из него дату, то надо обеспечить равное количество знаков в мае и ноябре когда Month() возвращает 5 или 11, так-же и с числом месяца. Наверное будет лучше взять месяц и дату из структуры.
if ( 9 < OrderOpenTime() < 10 ) проходим мимо
else открываем позицию
if ( 15 < OrderOpenTime() < 16 ) проходим мимо
else открываем позицию
зачем вам еще один советник???
Это Вы мне предлагаете слишком многое в сове менять. Либо я совсем не понимаю Вашу идею/предложение. Мне проще 2 советника поставить. Я же не программист ))) Тем более, что для каждого диапозона мне нужно разные ТП и СЛ выставлять. Это очень многое в советнике поменять надо. А так - он вполне полноценный (вроде), нужно просто функцию Магика изменить. Но все равно спасибо за участие в решении задачки ;-)))
Ну так посмотрел-бы приведённые в примере функции и сам мог догадаться заменить Hour() на Month(), поменять местами как это удобно тебе и получил-бы такую строку
Magic= StrToInteger(StringConcatenate(Month(), Day(), 1));
Хотя на мой взгляд 1 лучше писать впереди.
Magic= StrToInteger(StringConcatenate(1, Month(), Day()));
Но это предложение не проверялось, экспромт, так сказать... Если потом надо будет читать этот магик и извлекать из него дату, то надо обеспечить равное количество знаков в мае и ноябре когда Month() возвращает 5 или 11, так-же и с числом месяца. Наверное будет лучше взять месяц и дату из структуры.
Спасибо. Вот такой вариант мне вполне понятен. Эксперимент возьму на себя (мне же это надо))) О результатах отпишусь.
Еще раз всем спасибо.
Что-то у меня ничего не получается.... Может я его не туда сую?
Вот куда его и как правильно запхать, этот Меджико-заменитель?:
extern int Magic=10001;
extern int ATRPeriod = 12;
extern int AsiaStartTime = 2; //Время начала азиатской сессии
extern int AsiaEndTime = 11; //Время окончания азиатской сессии
extern int CloseTime = 15; //Время закрытия открытых ордеров
extern int MinATRPercent=35; //Мин %
extern int MaxATRPercent=55; //Макс %
extern int Take=180; //TakeProfit
extern int Stop=70; //StopLoss
extern bool Tral=false; //Трал обычный да/нет
extern int TS=30; //Уровень трала
extern int TralStep=15; //Шаг трала
extern bool UseSound = True; //Использовать звуковой сигнал да/нет
extern bool MM=false; //Включение ММ да/нет
extern double MMRisk=1; //Risk Factor
extern double Lots = 0.1; //Лот
extern bool Visual=true;
int MaxTries=5,Dec;
int i, cnt=0, ticket, mode=0, digit=0, total, OrderToday=0;
double StopLoss, TakeProfit, Lotsi=0, spread, MinStop, DayATR, max, min, p1, p2;
int LastVol;
string name="Asia";
string SoundSuccess = "alert.wav"; // Звук успеха
string SoundError = "timeout.wav"; // Звук ошибки
datetime t1, t2;
color ColorToShow;

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет!
Есть советник, работающий на пробой временных хаи/лоу.
Можно ли как-то поправить функцию меджика, чтобы он брал его из даты открытия ордера? А точнее - он берет диапозон (допустим) с 9-10 утра. И по хаи/лоу этого диапозона ставит отложки на пробой. Как сделать так, чтобы он выставил отложки именно этого диапозона и, по срабатыванию отложек, новых в этом месте не ставил? Но при этом, чтобы второй (такой же) мог это делать с 15-16?
Есть какие-нибудь варианты?