Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не могли бы вы опубликовать код с контекстом, поскольку мой код продолжает возвращать угол 0? Например, найдите угол SMA 50 за 10 периодов.
Не могли бы вы опубликовать код с контекстом, поскольку мой код продолжает возвращать угол, равный 0? Например, найти угол SMA 50 за 10 периодов.
В основном, потому что он полон дерьма, с которым я пытался заставить его работать. ...полон операторов печати и т.д.. Это полный хак, чтобы попытаться протестировать вычисления для возможного использования в визуализации позже. В любом случае, вот он:
Не нужно так много кде!
В вашем кейде:
MathArctan(MathTan(((price1-price2)/(WindowPriceMax()- WindowPriceMin()))/((SignalPeriod-0. 0)/WindowBarsPerChart())))*180/3.14;
Что означает "SignalPeriod" и почему?
Вы знаете, в общем случае, угол - это соотношение между прямой и осью X, эта прямая определяется двумя точками.
В вашем расчете цена2 и цена1 - это два значения в одной и той же координате X,
В моей формуле для расчета угла используется (дельта Y) / (дельта X):
MathArctan(MathTan(
((price1-price2)/(WindowPriceMax()- WindowPriceMin()))) // дельта Y
/
((shift2-shift1)/WindowBarsPerChart()) // это дельта X
))
*180/3.14
каковы будут значения для shift1 и shift2? или откуда они вычисляются? я знаю, что это была моя проблема, но не понимаю, как применить скользящее среднее.
прямая определяется двумя точками.
(price1,shift1), (price2,shift2) - это координаты этих двух точек. shift - это то же самое, что x в вашем коде.
---------------------------------------------------
Другими словами, если вам нужно вычислить угол любых двух линий, вам нужно 3 или 4 точки (для определения двух линий нужно 3 или 4 точки), и нужно больше знаний о тригонометрических функциях.
из вашего кода, я предполагаю, что вы хотите вычислить угол любых двух линий (как две линии MACD), а не угол одной линии и оси X.
Так что вам нужно 3 или 4 точки, следует просмотреть больше знаний о тригонометрических функциях, возможно, закон косинусов.
--------------------------
Или, во-первых, вычислите каждый угол одной из линий и оси X, во-вторых, их разность будет углом этих двух линий.
спасибо за ваш ответ, я пытаюсь рассчитать угол одной линии, т.е. скользящей средней и оси x. я знаю достаточно тригонометрии, чтобы выполнить расчеты, но не с тем, что доступно через MT.
очень просто, я хотел бы рассчитать текущий угол MA на сдвиге 0, а второй точкой отсчета будет MA на SignalPeriod или MA на ? баров раньше. другой точкой отсчета будет пересечение сдвига 0 y и SignalPeriod x.
price2 = iMA(Symbol(),0,MAPeriod,0, MODE_SMA,PRICE_CLOSE,SignalPeriod);
Координата X (SignalPeriod) должна быть последним параметром функции iMA(....), а не 4-м параметром. (4-й параметр: ma_shift имеет другое значение, не используйте его, если не знаете, что это такое !!!!).
Теперь все в порядке, попробуйте еще раз!