codifica ingresso long

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #233734 quote
    emilianop
    Participant
    New

    Buongiorno,

    cortesemente se possibile mi servirebbe un nuovo aiuto a tradurre in codice la parte di ingresso long di seguito descritta:

    //INGRESSO LONG
    // il 4° lunedì del mese salva il prezzo del titolo ( di apertura o chiusura non importa poi lo gestisco), poi prima di arrivare al 3° venerdì del mese successivo se il titolo scende di x punti % entra long

    IF quarto lunedì del mese THEN

    MIOPREZZO = azzero il prezzo del precedente 4° lunedì del mese

    MIOPREZZO = salvo il prezzo del 4° lunedì del mese in corso

    IF MIOPREZZO < x% BUY AT MARKET

    //USCITA devo uscire categoricamente il 3° ven del mese ( questo codice è già ok )

    IF OpenMonth <> OpenMonth[1] THEN

    Venerdi = 0
    ENDIF
    IF (DayOfWeek = 5) AND (DayOfWeek <> DayOfWeek[1]) THEN
    Venerdi = Venerdi + 1
    ENDIF
    IF OnMarket AND (Venerdi = 3) AND (DayOfWeek = 5) THEN
    SELL AT MARKET //uscita LONG
    EXITSHORT AT MARKET //uscita SHORT
    ENDIF
    grazie
    #233745 quote
    Iván González
    Moderator
    Master

    Ciao. Puoi fare lo stesso che hai fatto con il codice di accesso.

    once monday=0
    x=-8
    //----Count every monday
    if dayofweek=1 then
    monday=1+monday
    else
    monday=monday
    endif
    //----Restart counter every month
    if month<>month[1] then
    monday=0
    endif
    if monday=4 and dayofweek<dayofweek[1] then
    Mondayprice=close
    endif
    //----enter long
    if not onmarket and (close/Mondayprice-1)*100<X then
    buy 1 contract at market
    endif
    graphonprice mondayprice coloured("blue")
    robertogozzi thanked this post
    #233749 quote
    emilianop
    Participant
    New

    Grazie Ivan per la cortesia,

    purtroppo implementando il codice non mi entra mai a mercato.. anche variando il valore di X .. non capisco perchè..

    ti allego lo screenshot del ts

    #233759 quote
    robertogozzi
    Moderator
    Master

    Prova questa versione modificata:

    once monday=0
    x=-1
    //----Count every monday
    if opendayofweek=1 and opendayofweek <> opendayofweek[1] then
    monday=1+monday
    else
    monday=monday
    endif
    //----Restart counter every month
    if openmonth<>openmonth[1] then
    monday=0
    endif
    if monday=4 and opendayofweek<opendayofweek[1] then
    Mondayprice=close
    endif
    //----enter long
    if not onmarket and (close/Mondayprice-1)*100<X then
    buy 1 contract at market
    endif
    graphonprice mondayprice coloured("blue")
    graph Monday
    Iván González thanked this post
    #233766 quote
    emilianop
    Participant
    New

    Grande! questo lavora..

    faccio un po di test manuali per capire se fa quel che mi serve

    grazie 1000 per ora, molto gentile

    robertogozzi thanked this post
    #234312 quote
    emilianop
    Participant
    New

    Ciao a tutti, se possibile vorrei approfittare ancora della vostra gentilezza per modificare l’uscita del TS:

    in questo momento il ts esce sempre il 3° ven del mese, la modifica che vorrei implementare fa un controllo sullo stato della posizione prima di uscire, cioè

    if “sono a mercato” and “3° ven mese” and “mio prezzo di carico è > chiusura” then

    sell  at the market

    else “resta a mercato fino a quando il prezzo di carico >= price” // appena il prezzo torna al mio ingresso chiudo la posizione
    ( ci dovrei ricavare una statistica poi , per avere una sorta di indicatore di recovery, ovvio se il titolo continua a scendere senza mai tornare al pmc resta a mercato)

    Il ts non deve aprire altre posizioni finchè il prezzo non torna al mio pmc

     

    spero di essere stato chiaro nell’esposizione
    e ringrazio ancora per la cortesia, emiliano

    #234346 quote
    robertogozzi
    Moderator
    Master

    Nel codice sopra non c’è un’uscita? Va aggiunta?

    Il valore di price da dove si prende?

    #234348 quote
    emilianop
    Participant
    New

    l’uscita ora è questa ( da modificare come descritto sopra):

    //USCITA esce il 3° ven del mese ( questo codice è già ok )IF OpenMonth <> OpenMonth[1] THEN

    Venerdi = 0
    ENDIF
    IF (DayOfWeek = 5AND (DayOfWeek <> DayOfWeek[1]THEN
    Venerdi = Venerdi + 1
    ENDIF
    IF OnMarket AND (Venerdi = 3AND (DayOfWeek = 5THEN
    SELL AT MARKET //uscita LONG
    EXITSHORT AT MARKET //uscita SHORT
    ENDIF
    il “price” sarebbe la quotazione in tempo reale cioè il prezzo, non so come PROREALTIME la codifica.. altrimenti se uso CLOSE o OPEN , ho provato ma non fa quello che mi serve..
    #234663 quote
    robertogozzi
    Moderator
    Master

    PRICE è il prezzo corrente. Nel momento in cui una candela chiude diventa, per quella candela, il prezzo di chiusura per ritornare ad essere il prezzo corrente immediatamente dopo.

    Prova questa versione:

    once monday=0
    once friday=0
    x=-8
    //----Count every monday
    if openmonth<>openmonth[1] then
       Mondayprice=0
       monday=0
       friday=0
    endif
    if opendayofweek=1 and opendayofweek <> opendayofweek[1] then
       monday=1+monday
    endif
    if opendayofweek=5 and opendayofweek <> opendayofweek[1] then
       friday=1+friday
    endif
    //----Restart counter every month
    if monday=4 and Mondayprice=0 then
       Mondayprice=close
       friday=0
    endif
    //----enter long
    if not onmarket and (close/Mondayprice-1)*100<X then
       buy 1 contract at market
       Mondayprice=0
       friday=0
    endif
    if OnMarket AND (Friday = 3) AND (close >= TradePrice) THEN
       SELL AT MARKET
    ENDIF
    
    //graphonprice mondayprice coloured("blue")
    //graph Monday
    //graph Friday coloured("Red")
    //graph opendayofweek
    #234675 quote
    emilianop
    Participant
    New

    grazie Roberto,

    così esce se vengono rispettate le due condizioni ” 3 ven del mese ” e ” prezzo > mondayprice”, però nel caso in cui sono a mercato e il prezzo è < di mondayprice resta a mercato .. corretto però per uscire aspetta il prossimo

    3ven del mese … mentre a quel punto dovrei uscire appena il prezzo è > mondayprice .. cioè passato il primo 3 ven del mese da quando sono a mercato … ogni giorno è buono per uscire ..

    sarebbe : se sono a mercato e è passato già un 3 ven da quando sono a mercato allora esci appena tradeprice > mondayprice

    grazie ancora

    #234676 quote
    emilianop
    Participant
    New

    qualcosa non mi torna sull’ingresso così modificato, rispetto al codice di prima mi salta alcune entrate…

    allego screenshot con il confronto dei due ts, sul vecchio entra su calo quotazioni, mentre con il nuovo codice non entra a mercato

    #234695 quote
    robertogozzi
    Moderator
    Master

    Questo è il codice aggiornato per le uscite:

    once monday=0
    once friday=0
    IF Not OnMarket THEN
    uscita=0
    ENDIF
    x=-8
    //----Count every monday
    if openmonth<>openmonth[1] then
    Mondayprice=0
    monday=0
    friday=0
    endif
    if opendayofweek=1 and opendayofweek <> opendayofweek[1] then
    monday=1+monday
    endif
    if opendayofweek=5 and opendayofweek <> opendayofweek[1] then
    friday=1+friday
    endif
    //----Restart counter every month
    if monday=4 and Mondayprice=0 then
    Mondayprice=close
    friday=0
    endif
    //----enter long
    if not onmarket and (close/Mondayprice-1)*100<X then
    buy 1 contract at market
    Mondayprice=0
    friday=0
    endif
    if OnMarket AND (Friday = 3) THEN
    IF (close >= TradePrice) THEN
    SELL AT MARKET
    ELSE
    Uscita=1
    ENDIF
    ENDIF
    IF OnMarket AND Uscita AND (close >= TradePrice) THEN
    SELL AT MARKET
    Uscita=0
    ENDIF
    //graphonprice mondayprice coloured("blue")
    //graph Monday
    //graph Friday coloured("Red")
    //graph opendayofweek
    //graphonprice TradePrice

    per entrate errate o mancanti, dimmi su quale strumento, timeframe, data ed ora sono avvenute (o sarebbero dovute avvenire).

    #234696 quote
    emilianop
    Participant
    New

    esempio del 10 mar 2020 su Italgas (ma il problema è su tutti i sottostanti)
    come vedi il vecchio entra correttamente come da istruzione (zona sopra),
    mentre il nuovo codice (zona sotto) non mi genera quell’entrata.

    allego anche i rapporti dove si evince che il nuovo codice non trova ingressi ..
    con x-8 dovrebbero invece esserci, come giustamente segnava il vecchio codice

    TF : giornaliero

    #236006 quote
    emilianop
    Participant
    New

    sbaglio io ?

    #236017 quote
    robertogozzi
    Moderator
    Master

    Scusami per il ritardo.
    Ho fatto alcune variazioni, adesso sembra funzionare:

    once monday=0
    once friday=0
    x=-8
    //----Count every monday and Friday (restart every month)
    if openmonth<>openmonth[1] then
    Mondayprice=close
    monday=0
    friday=0
    endif
    if opendayofweek=1 and opendayofweek <> opendayofweek[1] then
    monday=1+monday
    endif
    if opendayofweek=5 and opendayofweek <> opendayofweek[1] then
    friday=1+friday
    IF friday > 3 THEN
    Flag = 1
    ENDIF
    endif
    IF Not Onmarket THEN
    Flag = 0
    ENDIF
    //----Restart counter every month
    //if monday=4 and Mondayprice=0 then
    //Mondayprice=close
    //friday=0
    //endif
    //----enter long
    if not onmarket and (close/Mondayprice-1)*100<X then
    buy 1 contract at market
    Mondayprice=0
    friday=0
    flag = 0
    endif
    if OnMarket AND (((Friday = 3) and (Flag = 0)) OR Flag) AND (close >= TradePrice) THEN
    SELL AT MARKET
    ENDIF
    
    //graphonprice mondayprice coloured("blue")
    //graphonprice TradePrice coloured("blue")
    //graph Monday
    //graph Friday coloured("Red")
    //graph Flag
    //graph opendayofweek
Viewing 15 posts - 1 through 15 (of 16 total)
  • You must be logged in to reply to this topic.

codifica ingresso long


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
emilianop @emilianop Participant
Summary

This topic contains 15 replies,
has 3 voices, and was last updated by emilianop
1 year, 6 months ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 06/11/2024
Status: Active
Attachments: 3 files
Logo Logo
Loading...