[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 509
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Он уже спрашивал в другой ветке об этом. Ответили... Но он в коде не понимает - сам писал об этом.
Ему скрипт нужен (готовое решение - нажал клавишу (запустил скрипта) - на экране посмотрел).
Остаётся одно, пригласить его инвестировать наши счета! :))
Остаётся одно, пригласить его инвестировать наши счета! :))
Идея хорошая, но трудно реализуемая
Чё та меня уже совсем запутали. Вот 3 функции, каждая из которых получает свой канкретный сигнал по конкретному индюку.
Это функция получает общий сигнал от всех индюков, и принимает решение КУПИТЬ или ПРОДАТЬ.
И вот это функция главная, где получается общий сигнал, тут мы получает значения индюков через цикл, чтоб пройтись есс-но по всем барам.. И потом полученные значения по ссылке передаются в соответствующие ф-ции, где эти значения нужны т.е. в ф-ции:
int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2)
int GetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2)
void GetMomentumSignal() , в принципе тоже можно запихнуть туда же.
Таким образом получается, что все рассчёты индюков будут в одной главной ф-ции получения сигнала. Тут же всё логично..
Виктор! Логика у Вас присутствует, а вот знаний пока маловато. Первое, если не бросите это дело, поможет пойти дальше учебника, а чтобы "победить" второе - с него же (с учебника) и надо пока начинать. Вы не готовы (пока) строить СВОЮ логическую структуру кода, вернитесь к азбучному варианту.
P.S. Что "бросается в глаза" в Вашем коде:
в функции GetSignal() для поиска пересечения двух линий МОЖНО использовать цикл for, НО ЛУЧШЕ использовать цикл while, хотя это личные предпочтения. А для начала, чтобы код исполнял Вами озвученное, нужно перенести скобочку, как и в "Казнить, нельзя помиловать". Почему-то в этой (результирующей) функции отсутствуют рузультаты двух функций: GetStochSignal() и GetMomentumSignal(), - это НЕМНОЖКО не логично.
в функциях GetCrossingMa() и GetStochSignal() нет НИКАКОГО смысла передавать параметры по ссылкам, потому, что это имело бы смысл, если бы эти переменные внутри функции МЕНЯЛИ свои значения.
функция void GetMomentumSignal() НИЧЕГО не возвращает.
Хотя я допускаю, что со стороны "хуже видно"... :)))
Вот альтернативный вариант функции, получающей сигналы с МАш(ки)ек:
Как можно понять из комментариев, сигнал можно получить по наклону одной МА (при MA_K_Period <= 1.0) или по пересечению 2-ух МА (при MA_K_Period > 1.0). Период 2-ой Машки расчитывается самостоятельно (за пределами данной функции):
В функции можно задать и условие на расхождение 2-х Машек (при fd_Deviation > 0.0). Также можно отслеживать факт пересечения (fb_ControlBeginChangeTrend = TRUE) или просто фиксировать нахождение Fast и Slow относительно друг друга.
Чтобы посмотреть как работает этот код, в архив положил индикатор, который по сигналам данной функции рисует стрелочки. Запускаемся через шаблон Signal_MA.tpl (для одной МА) или Signal_MA2.tpl (для 2-ух). Кстати, и МАшки могут браться разные.
Вот альтернативный вариант функции, получающей сигналы с МАш(ки)ек:
Как можно понять из комментариев, сигнал можно получить по наклону одной МА (при MA_K_Period <= 1.0) или по пересечению 2-ух МА (при MA_K_Period > 1.0). Период 2-ой Машки расчитывается самостоятельно (за пределами данной функции):
В функции можно задать и условие на расхождение 2-х Машек (при fd_Deviation > 0.0). Также можно отслеживать факт пересечения (fb_ControlBeginChangeTrend = TRUE) или просто фиксировать нахождение Fast и Slow относительно друг друга.
Чтобы посмотреть как работает этот код, в архив положил индикатор, который по сигналам данной функции рисует стрелочки. Кстати, и МАшки могут браться разные.
Захотите ускорить работу индикатора - обращайтесь
Захотите ускорить работу индикатора - обращайтесь
Доброго дня! Модификация ордера-ошибка 4051. Час ужу думаю. Ну вроде верный там параметр!!! Короче, побуквено. Параметр цена- цена открытия ордера, OrderOpenPrice(), стандартно.
Стоп несём на 10 пунктов ниже цены открытия ордера, а цену запромнили. Запомнили в переменной tsena , при открытии ордера.
Ордеров два, один с профитом другой без. Вот, вроде понятно расказал. Откуда ошибка?? Что же ему ещё?
Да, условие вроде понятно, хоть это уже не к делу. Тоесть, цена ушла на 30 пунктов-условие сработало.( tsena+30*Point ).
Носим один раз perenos=true; Эти условия собственно вроде работают.
Сам уж не знаю как думать.
Собственно Носим один раз perenos=true; Эти условия наблюдать-то и не пришлось, т.к. никуда и не носит.
Там собствено есть ещё нималоважный параметр-тикет. Однако я его присваиваю переменной так int tacket=OrderSend и так int tucket=OrderSend,
а использую соотвецтвено так OrderModify( tacket, и короче формально я ошибки там как бы не вижу!!!
Во, блин... 2012.11.14 22:40:17 2012.08.16 15:30 василийпрр EURGBP,M30: 1Error 0 tacket 5 то есть ордер откріли, тикет присвоили.
А чуть дальше он уже равен нолю! То есть внутри следующего участка кода, что занимается модификацией.
2012.11.14 23:05:27 2012.08.17 11:03 василийпрр EURGBP,M30: tacket 0 OrderOpenPrice() 0.7845 tsena-10*Point 0.7835 OrderTakeProfit() 0.789
Вне указаного віше участка кода переменная вобще не играет!
Не могу раскладку украинскую сминить никакой комбинацией клавиш, а написана вопще русская!
Там собствено есть ещё нималоважный параметр-тикет. Однако я его присваиваю переменной так int tacket=OrderSend и так int tucket=OrderSend,
а использую соотвецтвено так OrderModify( tacket, и короче формально я ошибки там как бы не вижу!!!
Повидимому, ДЦ не принимает сразу с СЛ и ТП. После открытия модифицируйте СЛ и ТП. И 2ю позицию надо открывать не сразу, со следущим тиком!