Start to look for conditions after crossover

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #208741 quote
    Johann
    Participant
    Average

    Trying to get the algorithm to wait for a crossover between the two moving averages to occur, and then checks the RSI value in the next 5 candles. If the RSI is below 30 in one of those candles, the algorithm generates a buy signal. This way, the algorithm waits for confirmation of the oversold condition before entering a trade. This code do not work it trades on the crossover but the crossover should only indicate the starting point from where it should look at the RSI

    // Define the lengths of the moving averages and RSI indicator
    maLength1 = 20
    maLength2 = 30
    rsiLength = 14
    
    // Calculate the moving averages and RSI value
    ma1 = Average[maLength1](close)
    ma2 = Average[maLength2](close)
    nrsi = rsi[rsiLength](close)
    
    // Identify the cross over using the moving averages
    crossover = 0
    if ma1 > ma2 and ma1[1] < ma2[1] Then
    crossover = 1 // moving average crossover occurred
    Endif
    // Use the cross over signal and RSI value to determine the entry price
    direction = 0
    if crossover = 1 Then
    for i = 0 to 4
    if nrsi[i] < 30 Then
    direction = 1 // buy
    Endif
    NEXT
    Endif
    
    If direction = 1 Then
    Buy 1 contract at market
    Endif
    
    // Stops and targets
    SET STOP pLOSS 100
    SET TARGET pPROFIT 100
    #208800 quote
    JS
    Participant
    Master

    Hi @johann,

    Try replacing the For…Next with:

    Direction=0

    If CrossOver=1 and nrsi[0]<30 or nrsi[1]<30 or nrsi[2]<30 or nrsi[3]<30 or nrsi[4]<30 then

    Direction=1

    EndIf

    Johann thanked this post
    #208888 quote
    Johann
    Participant
    Average

    Thanks JS, will try…

    #208889 quote
    Johann
    Participant
    Average

    Hi JS, nope unfortunately it does not work. The idea is that the algo should look at the next 5 bars whether the RSI is in oversold territory just after the cross over up of the 20SMA and 30SMA. The trade has to take place within 5 bars after the cross over. If the RSI does not go into oversold territory within the next 5 bars the trade aborts and wait for the next cross over.

    #208902 quote
    Nicolas
    Keymaster
    Legend

    Here is a new attempt, store the barindex of the event, then check bars elasped since. Not tested.

    // Define the lengths of the moving averages and RSI indicator
    maLength1 = 20
    maLength2 = 30
    rsiLength = 14
    
    // Calculate the moving averages and RSI value
    ma1 = Average[maLength1](close)
    ma2 = Average[maLength2](close)
    nrsi = rsi[rsiLength](close)
    
    // Identify the cross over using the moving averages
    if ma1 > ma2 and ma1[1] < ma2[1] Then
     crossover = barindex // moving average crossover occurred = store the barindex
    Endif
    
    // Use the cross over signal and RSI value to determine the entry price
    if barindex-crossover <= 5 and crossover>0 Then //crossover occured less than 5 bars ago
    
     if nrsi < 30 Then
      Buy 1 contract at market
      crossover = 0 //reset and prevent next order with same crossover
     Endif
    
    endif 
    
    // Stops and targets
    SET STOP pLOSS 100
    SET TARGET pPROFIT 100
    Johann thanked this post
    #208911 quote
    Johann
    Participant
    Average

    Thank you Nicolas will try your suggestion…

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Start to look for conditions after crossover


ProOrder: Automated Strategies & Backtesting

New Reply
Author
author-avatar
Johann @johann Participant
Summary

This topic contains 5 replies,
has 3 voices, and was last updated by Johann
3 years, 7 months ago.

Topic Details
Forum: ProOrder: Automated Strategies & Backtesting
Language: English
Started: 01/30/2023
Status: Active
Attachments: No files
Logo Logo
Loading...