Шрифт:
Для получения более подробной информации вы можете запустить окно справки. Для этого нажмите 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)