Buy limit %

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #150677 quote
    Giuseppe76
    Participant
    New

    Buona sera a tutti,

    Sono nuovo di questa comunità e sto cercando di fare backtesting di una strategia che, al verificarsi  di 2 condizioni, deve entrare long con un ordine Buy limit al 2% sotto la chiusura del giorno precedente.

    Le 2 condizioni sono prezzi sopra la media mobile semplice a 200 periodi e rsi sotto a 5.

    Ho provato a scrivere il codice ma non riesco proprio a farlo funzionare.. Suggerimenti?

    Grazie!

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Cumulating positions deactivated //
    level1 = (close*0.2)
    // Condizioni per entrare su posizioni long
    indicator1 = RSI[2](close)
    c1 = (indicator1[1] < 5)
    indicator2 = Average[200](close)
    c2 = (close[1] > indicator2[1])
    
    IF c1 AND c2 THEN
    buy 1 CONTRACT AT – level1 LIMIT
    ENDIF
    #150688 quote
    robertogozzi
    Moderator
    Master

    Per favore usa sempre il pulsante “Insert PRT code” quando inserisci il codice nei tuoi post per facilitare la lettura degli altri. Grazie 🙂

    Eccolo:

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Cumulating positions deactivated //
    level1 = (close*0.98)
    // Condizioni per entrare su posizioni long
    indicator1 = RSI[2](close)
    c1 = (indicator1[1] < 5)
    indicator2 = Average[200](close)
    c2 = (close[1] > indicator2[1])
     
    IF c1 AND c2 THEN
       buy 1 CONTRACT AT level1 LIMIT
    ENDIF
    Giuseppe76 thanked this post
    #150695 quote
    Giuseppe76
    Participant
    New

    Grazie mille dela risposta!

    Approfitto ancora per chiedere dove sbaglio nelle condizioni di exit.

    In pratica vorrei che la posizione venisse chiusa se l’ RSI a 5 periodi incrocia al rialzo 40 oppure se non si verifica questa condizione dopo 10 giorni di trading.

    Io ho provato a scriverlo cosi.

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Cumulating positions deactivated //
    level1 = (close*0.98)
    x = 20
    // Condizioni per entrare su posizioni long
    indicator1 = RSI[2](close)
    c1 = (indicator1[1] < 5)
    indicator2 = Average[200](close)
    c2 = (close[1] > indicator2[1])
    indicator3 = RSI[5](close)
    c3 = (indicator3[1] > 40)
    IF c1 AND c2 THEN
    buy 1 CONTRACT AT level1 LIMIT
    IF c3 THEN
    SELL AT MARKET 
    IF BarIndex - TradeIndex = x Then
    Sell at Market
    ENDIF
    #150704 quote
    robertogozzi
    Moderator
    Master

    Basta cambiare la riga 11 in:

    c3 = (indicator3[1] CROSSES OVER 40)
    #150707 quote
    Giuseppe76
    Participant
    New

    ok. Grazie mille Roberto,

    Mi sembra tutto corretto ma mi restituisce il seguente errore:

    Linea 20:

    Uno dei seguenti caratteri sarebbe più appropriato di :”fine del codice”: null

    Non capisco.. non ci sono nemmeno 20 righe di codice..

    #150709 quote
    robertogozzi
    Moderator
    Master

    Perché ci sono 3 IF e solo 1 ENDIF.

    Giuseppe76 thanked this post
    #150710 quote
    Giuseppe76
    Participant
    New

    Hai ragione!

    Grazie mille! sto imparando e certe cose mi sfuggono.

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

Buy limit %


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Giuseppe76 @giuseppe76 Participant
Summary

This topic contains 6 replies,
has 2 voices, and was last updated by Giuseppe76
5 years, 4 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 11/16/2020
Status: Active
Attachments: No files
Logo Logo
Loading...