Приятной особенностью скрипта Pine является то, что справка всегда легко доступна, если вы работаете с синтаксисом, с которым раньше не работали.
Например, мы можем навести курсор на нашу функцию, и она покажет краткое описание.
Для получения более подробной информации вы можете запустить окно справки. Для этого нажмите CTRL, щелкнув функцию на ПК. Или, на Mac, нажмите CMD, нажимая на функцию.
Функция справки разъясняет синтаксис и даже содержит полезные примеры. request.security("AAPL", "D", close)
Мы использовали синтаксис, аналогичный примеру в приведенном выше фрагменте кода. Первым значением в функции безопасности является тикер, который является AAPL.
Затем мы устанавливаем временные рамки на день. И, наконец, мы сообщили скрипту Pine, что нас интересует цена закрытия.
Мы можем сохранить возврат функции в переменную. apple_price = request.security("AAPL", "D", close)
Теперь переменная apple_price будет содержать последнее дневное закрытие акций Apple.
Исследования, созданные в скрипте Pine, должны иметь хотя бы один вывод, иначе скрипт выдаст ошибку компилятора.
Давайте построим нашу переменную так, чтобы она удовлетворяла правилу сценария Pine о наличии вывода. plot(apple_price)
После сохранения и добавления на график наш экран выглядит так.
Теперь у нас есть дневная цена закрытия Apple, отображаемая в окне данных, в то время как в главном окне отображается свечной график биткойнов.
Полный код: //@version=5 indicator("price of Apple") apple_price = request.security("AAPL", "D", close) plot(apple_price) Как получить SMA ( 20 ) Apple?
Теперь, когда мы можем получить доступ к цене акций Apple, давайте рассмотрим пример получения простой скользящей средней.
Тот же процесс можно использовать для применения любого индикатора.
Мы начнем с наших основных объявлений и используем функцию безопасности, которую мы создали в нашем последнем примере. //@version=5 indicator("Get 20 SMA of Apple") // Get price of Apple apple_price = request.security("AAPL", "D", close) // 1 Day
Если вы не хотите получать 20 SMA специально для AAPL, вы можете пропустить определение безопасности и просто использовать встроенную переменную close.
Это позволит получить цену закрытия для любой ценной бумаги, которая отображается в главном окне графика.
В скрипт 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.