Чтение онлайн

на главную - закладки

Жанры

Учебник Pine Script 4
Шрифт:

В скрипт Pine встроена вспомогательная функция для индикатора SMA. Чтобы получить к нему доступ, мы просто используем функцию ta.sma. ta.sma(apple_price, 20)

Первый параметр, который нам нужно передать, — это значение цены. В этом случае мы используем цену закрытия для Apple, которую мы сохранили в нашей переменной apple_price.

Второй параметр — длина SMA. Мы ищем 20-периодную SMA.

Наконец, мы назначим данные SMA отдельной переменной, а затем построим ее. apple_sma = ta.sma(apple_price, 20) plot(apple_sma)

Простая скользящая средняя для Apple теперь отображается в нашем окне данных.

Скользящие средние обычно наносятся на основной график. Мы можем добиться этого с помощью небольшой модификации нашего кода. indicator("Get 20 SMA of Apple", overlay=true)

Добавив в overlay=Trueобъявление индикатора, мы можем отображать наши данные непосредственно в главном окне графика, а не в окне данных.

Полный код: //@version=5 indicator("Get 20 SMA of Apple", overlay=true) // Get price of Apple apple_price = request.security("AAPL", "D", close) // 1 Day // Calculate 20 SMA of Apple apple_sma = ta.sma(apple_price, 20) plot(apple_sma) Как протестировать кросс-стратегию скользящих средних с помощью Pine Script?

Мы прошлись по индикаторам. Давайте посмотрим на стратегии в Pine Script.

В следующем примере мы создадим стратегию пересечения скользящих средних с несколькими дополнительными параметрами. Затем мы проверим стратегию на истории в TradingView. //@version=5 strategy("My Strategy", overlay=true)

Чтобы создать стратегию, мы заменяем объявление индикатора объявлением стратегии. // Create Indicator's shortSMA = ta.sma(close, 10) longSMA = ta.sma(close, 30)

Первое, что нам нужно сделать, это создать две скользящие средние и присвоить данные переменным. rsi = ta.rsi(close, 14)

Мы также создадим индикатор RSI, который будет использоваться для подтверждения наших входов и выходов.

Эта стратегия будет работать на основном графике, поэтому нам не нужно использовать здесь функцию security.

Далее мы хотим указать наши условия кроссовера. К счастью, в TradingView уже есть встроенная функция для этого, поэтому нам не нужно кодировать ее вручную. // Specify crossover conditions longCondition = ta.crossover(shortSMA, longSMA) shortCondition = ta.crossunder(shortSMA, longSMA)

У нас есть два условия, первое — когда короткая SMA с периодом 10 пересекает более длинную SMA с периодом 30.

Второе условие является противоположным, поскольку мы использовали функцию crossunder, а не crossover.

Оба эти условия сохраняются в переменных. Поэтому, когда происходит пересечение (crossover или crossunder), эти переменные будут обновлены до True, что является логическим значением.

Мы можем использовать оператор if, чтобы проверить, изменилось ли условие на True, а затем выполнить сделку, если это так. if (longCondition) strategy.entry("long", strategy.long, 100, when = rsi > 50)

Встроенная strategy.entryфункция используется для входа в сделки. Вот параметры, которые передаются в функцию.

long — это идентификатор сделки. Мы не будем использовать его в этом примере. Но, если вы планируете закрыть или отменить сделку, это можно сделать с помощью этого идентификатора.

Strategy.long — это встроенная переменная, которая сообщает скрипту Pine, что мы хотим открыть длинную позицию.

100 — количество акций, которыми мы хотим торговать

when = rsi > 50 — это дополнительный параметр, который указывает скрипту pine выполнять сделку только в том случае, если RSI выше 50.

Синтаксис наших кратких записей будет очень похож на формат. if (shortCondition) strategy.entry("short", strategy.short, 100, when = rsi < 50)

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

Но мы все равно это сделаем. Было бы неплохо увидеть SMA на графике, чтобы мы могли подтвердить, что сделки имели место, когда они должны были быть. // Plot Moving Average's to chart plot(shortSMA) plot(longSMA, color=color.black)

Если мы сохраним и добавим на график, стратегия запустится и автоматически откроет окно тестера стратегий , в котором будут отображаться некоторые важные статистические данные.

Вот так выглядит наш экран.

По умолчанию открывается новая вкладка с обзорной статистикой по стратегии. Вы можете щелкнуть сводку по эффективности или список сделок, чтобы увидеть другую статистику.

Стратегия будет работать на таймфрейме, который отображается на вашем графике.

Вы можете легко переключаться между различными временными рамками, используя параметры временных рамок в меню в верхней части экрана. Стратегия будет автоматически обновляться в соответствии с выбранным новым таймфреймом.

Полный код: //@version=5 strategy("My Strategy", overlay=true) // Create Indicator's shortSMA = ta.sma(close, 10) longSMA = ta.sma(close, 30) rsi = ta.rsi(close, 14) // Specify crossover conditions longCondition = ta.crossover(shortSMA, longSMA) shortCondition = ta.crossunder(shortSMA, longSMA) // Execute trade if condition is True if (longCondition) strategy.entry("long", strategy.long, 100, when = rsi > 50) if (shortCondition) strategy.entry("short", strategy.short, 100, when = rsi < 50) // Plot Moving Average's to chart plot(shortSMA) plot(longSMA, color=color.black) Как установить тейк-профит и стоп-лосс?

В нашем последнем примере исполнение сделки определялось пересечением и пересечением скользящих средних.

Мы будем опираться на этот скрипт и установим конкретные стоп-лоссы и тейк-профиты. Мы можем использовать средний истинный диапазон (ATR) для расчета уровней для них.

Индикатор ATR рассчитывает среднее движение за последнее количество указанных баров. Это хороший способ учета изменений волатильности.

Мы уже объявили несколько индикаторов, добавим в список индикатор ATR. // Create Indicator's shortSMA = ta.sma(close, 10) longSMA = ta.sma(close, 30) rsi = ta.rsi(close, 14) atr = ta.atr( 14 )

Поделиться:
Популярные книги

Менталист. Эмансипация

Еслер Андрей
1. Выиграть у времени
Фантастика:
альтернативная история
7.52
рейтинг книги
Менталист. Эмансипация

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Газлайтер. Том 1

Володин Григорий
1. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 1

Назад в СССР 5

Дамиров Рафаэль
5. Курсант
Фантастика:
попаданцы
альтернативная история
6.64
рейтинг книги
Назад в СССР 5

В лапах зверя

Зайцева Мария
1. Звериные повадки Симоновых
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
В лапах зверя

Мастер 7

Чащин Валерий
7. Мастер
Фантастика:
фэнтези
боевая фантастика
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Мастер 7

Темная сторона. Том 2

Лисина Александра
10. Гибрид
Фантастика:
технофэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Темная сторона. Том 2

Буря империи

Сай Ярослав
6. Медорфенов
Фантастика:
аниме
фэнтези
фантастика: прочее
эпическая фантастика
5.00
рейтинг книги
Буря империи

Страж Кодекса. Книга V

Романов Илья Николаевич
5. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга V

Локки 6. Потомок бога

Решетов Евгений Валерьевич
6. Локки
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Локки 6. Потомок бога

Возвращение Безумного Бога

Тесленок Кирилл Геннадьевич
1. Возвращение Безумного Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Возвращение Безумного Бога

Как я строил магическую империю 2

Зубов Константин
2. Как я строил магическую империю
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Как я строил магическую империю 2

Тихие ночи

Владимиров Денис
2. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Тихие ночи

Сердце Дракона. Том 10

Клеванский Кирилл Сергеевич
10. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.14
рейтинг книги
Сердце Дракона. Том 10