ПочатиПочніть безкоштовно

Використання sigCrossover

Мати довгий фільтр необхідно, але цього недостатньо, щоб відкрити угоду для цієї стратегії. Водночас, щойно умова перестає виконуватися, стратегія не повинна тримати жодної позиції. У цій вправі ви реалізуєте протилежне до правила, зазначеного вище, за допомогою функції sigCrossover().

На відміну від sigComparison(), яка завжди вказує, чи виконується умова, sigCrossover() дає позитивний результат лише в момент, коли сигнал виникає вперше, і потім більше не спрацьовує. Це корисно для сигналу, який ініціює транзакцію, адже зазвичай потрібна одна транзакція, а не багаторазові спрацювання.

У цьому завданні ви реалізуєте функцію sigCrossover(), вказавши, що SMA50 перетинає зверху вниз SMA200. Ви позначите цей сигнал як filterexit, оскільки він закриватиме вашу позицію, коли фільтр за ковзними середніми показує, що умови ринку не сприятливі для утримання позиції за стратегією.

Ця вправа є частиною курсу

Фінансовий трейдинг в R

Переглянути курс

Інструкції до вправи

  • Використайте add.signal(), щоб додати sigCrossover, який задає, що SMA50 перетинає зверху вниз SMA200.
  • Позначте цей сигнал як filterexit.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Add a sigCrossover which specifies that the SMA50 is less than the SMA200 and label it filterexit
add.signal(strategy.st, name = "___",
           
           # We're interested in the relationship between the SMA50 and the SMA200
           arguments = list(columns = c("___", "___"),
                            
                            # The relationship is that the SMA50 crosses under the SMA200
                            relationship = "___"),
           
           # Label it filterexit
           label = "___")
Редагувати та запускати код