Exit problem

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #131759 quote
    BertonTomas
    Participant
    New

    Good morning,
    The program below,  depending on the type of bar, enters short or long.
    If you enter long, you must remain on the market until the first red bar, therefore when closing the latter, you must close the long position and immediately return to the market based on the type of bar just closed.
    If you enter short, you must remain on the market until the first green bar, then when closing the latter, you must close the short position and immediately return to the market based on the type of bar just closed.
    The problem is that the program closes and enters immediately if for example they are long and at the first red bar I have to close and enter short. If they are long, I have to close and re-enter long, close, but they do not immediately return to the market. Same goes for the short case.
    how can this be solved?
    I enclose the program

    // v1:  04/04/2020
    //***************************************************************************************
    //
    DEFPARAM CumulateOrders  = False
    DEFPARAM PreLoadBars     = 10000
    ////////////////////////////////////////////////////////////////////////////////////////
    ONCE Capitale            = 4196
    ONCE LotNumber           = 10
    ONCE MinLots             = 1
    ONCE SpreadEntrata       = 20  * pipsize
    ONCE StopMinimo          = 40  * pipsize
    ONCE StopMassimo         = 200 * pipsize
    BarraVerde               = Open < Close
    BarraRossa               = Open > Close
    TradingDay               = OpenDayOfWeek >= 1 AND OpenDayOfWeek <= 5  //trade only Mon. to Fri.
    
    //Definisco il tipo barra
    IF (close >= (high + low) / 2) THEN
    TipoBarra = 1
    ELSIF (close < (high + low) /2) THEN
    TipoBarra = 2
    ENDIF
    
    IF BarraVerde THEN
    SpikeSuperiore = high - close
    SpikeInferiore =  open - low
    ELSIF BarraRossa THEN
    SpikeSuperiore = high - open
    SpikeInferiore = close - low
    ENDIF
    
    //Il profitto è dato dal capitale + il ricavato dal programma
    MyProfit        = Capitale + StrategyProfit
    
    //Aumento della size al cambio del mese
    IF Month <> Month[1] THEN
    LotNumber    = max(MinLots, (MyProfit / Capitale))
    ENDIF
    
    IF NOT ONMARKET THEN                                    //Inizio prima entrata a mercato
    IF TipoBarra = 1 AND TradingDay THEN
    SELLSHORT LotNumber CONTRACT AT MARKET
    TipoPosizione = -1
    IF SpikeSuperiore >= 220 THEN
    StopEntrata = StopMassimo + SpreadEntrata
    SET STOP pLOSS StopEntrata
    ELSE
    StopEntrata = SpikeSuperiore + SpreadEntrata
    SET STOP pLOSS max(StopMinimo,StopEntrata)
    ENDIF
    ELSIF TipoBarra = 2 AND TradingDay THEN
    BUY       LotNumber CONTRACT AT MARKET
    TipoPosizione = 1
    IF SpikeInferiore >= 220 THEN
    StopEntrata = StopMassimo + SpreadEntrata
    SET STOP pLOSS StopEntrata
    ELSE
    StopEntrata = SpikeInferiore + SpreadEntrata
    SET STOP pLOSS max(Stopminimo,StopEntrata)
    ENDIF
    ENDIF
    ELSE                                                    // Inizio se sono già a mercato
    IF TipoPosizione = 1 AND BarraRossa THEN             //Se sono LONG e Barra Rossa chiudi posizione
    SELL AT MARKET
    IF TipoBarra = 1 AND TradingDay THEN              //Se la barra appena chiusa e tipo 1 entra SHORT
    SELLSHORT LotNumber CONTRACT AT MARKET
    IF SpikeSuperiore >= 220 THEN
    StopEntrata = StopMassimo + SpreadEntrata
    SET STOP pLOSS StopEntrata
    ELSE
    StopEntrata = SpikeSuperiore + SpreadEntrata
    SET STOP pLOSS max(StopMinimo,StopEntrata)
    ENDIF
    ELSIF TipoBarra = 2 AND TradingDay THEN           //Se la barra appena chiusa e tipo 2 entra LONG
    BUY       LotNumber CONTRACT AT MARKET
    IF SpikeInferiore >= 220 THEN
    StopEntrata = StopMassimo + SpreadEntrata
    SET STOP pLOSS StopEntrata
    ELSE
    StopEntrata = SpikeInferiore + SpreadEntrata
    SET STOP pLOSS max(StopMinimo,StopEntrata)
    ENDIF
    ENDIF
    ELSIF TipoPosizione = -1 AND BarraVerde THEN         //Se sono SHORT e Barra Verde chiudi posizione
    EXITSHORT AT MARKET
    IF TipoBarra = 1 AND TradingDay THEN             //Se la barra appena chiusa e tipo 1 entra SHORT
    SELLSHORT LotNumber CONTRACT AT MARKET
    IF SpikeSuperiore >= 220 THEN
    StopEntrata = StopMassimo + SpreadEntrata
    SET STOP pLOSS StopEntrata
    ELSE
    StopEntrata = SpikeSuperiore + SpreadEntrata
    SET STOP pLOSS max(StopMinimo,StopEntrata)
    ENDIF
    ELSIF TipoBarra = 2 AND TradingDay THEN          //Se la barra appena chiusa e tipo 2 entra LONG
    BUY       LotNumber CONTRACT AT MARKET
    IF SpikeInferiore >= 220 THEN
    StopEntrata = StopMassimo + SpreadEntrata
    SET STOP pLOSS StopEntrata
    ELSE
    StopEntrata = SpikeInferiore + SpreadEntrata
    SET STOP pLOSS max(StopMinimo,StopEntrata)
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    #131760 quote
    Vonasi
    Moderator
    Master

    BertonTomasPlease update your country flag in your profile.

    There are some simple rules that everyone using the forums is expected to follow. Your post has broken one or more of these rules.

    The forum rules are as follows. I have highlighted in bold the rule/rules that you have not followed:

    Post your topic in the correct forum.

    ProRealTime Platform Support          only platform related issues.
    ProOrder                                                only strategy topics.
    ProBuilder                                              only indicator topics.
    ProScreener                                           only screener topics
    General Discussion                               any other topics.
    Welcome New Members                      for new forum members to introduce themselves.

    Only post in the language of the forum that you are posting in. For example English only in the English speaking forums and French only in the French speaking forums.
    Always use the ‘Insert PRT Code’ button when putting code in your posts to make it easier for others to read.
    Do not double post. Ask your question only once and only in one forum. All double posts will be deleted anyway so posting the same question multiple times will just be wasting your own time and will not get you an answer any quicker. Double posting just creates confusion in the forums.
    Be careful when quoting others in your posts. Only use the quote option when you need to highlight a particular bit of text that you are referring to or to highlight that you are replying to a particular member if there are several involved in a conversation. Do not include large amounts of code in your quotes. Just highlight the text you want to quote and then click on ‘Quote’.
    Give your topic a meaningful title. Describe your question or your subject in your title. Do not use meaningless titles such as ‘Coding Help Needed’.
    Do not include personal information such as email addresses or telephone numbers in your posts. If you would like to contact another forum member directly outside of the forums then contact the forums administrator via ‘Contact Us’ and they will pass your details on to the member that you wish to contact.
    Always be polite and courteous to others.
    Have fun.

    I have edited your post where required. Please ensure that your future posts meet these few simple forum rules. 🙂

    #131772 quote
    robertogozzi
    Moderator
    Master

    I already warned you:

    • to post in the forum of the language you want to speak
    • to use the correct support forum
    • to use the button to insert code
    • to update your flag

    Now I need to also warn you to not double post!

    I deleted your topic in the italian forum.

    No matter what language you choose you seem not to be able to read the rules. Would you take a minute to point out the most difficult words so that we can improve the wording?

    Thank you 🙂

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

Exit problem


ProOrder: Automated Strategies & Backtesting

New Reply
Author
Summary

This topic contains 2 replies,
has 3 voices, and was last updated by robertogozzi
5 years, 9 months ago.

Topic Details
Forum: ProOrder: Automated Strategies & Backtesting
Language: English
Started: 05/15/2020
Status: Active
Attachments: No files
Logo Logo
Loading...