{"id":11971,"date":"2022-03-15T00:00:00","date_gmt":"2022-03-14T23:00:00","guid":{"rendered":"https:\/\/ungeracademy.com\/it\/blog\/setexitonclose-di-power-language-come-si-usa-in-backtest-e-live-trading"},"modified":"2025-06-20T16:16:06","modified_gmt":"2025-06-20T14:16:06","slug":"setexitonclose-di-power-language-come-si-usa-in-backtest-e-live-trading","status":"publish","type":"post","link":"https:\/\/ungeracademy.com\/it\/blog\/setexitonclose-di-power-language-come-si-usa-in-backtest-e-live-trading","title":{"rendered":"SetExitOnClose di Power Language: Come si usa in Backtest e Live Trading"},"content":{"rendered":"<p>Ciao ragazzi e bentornati sul nostro canale! Oggi vi voglio parlare della keyword &#8220;setexitonclose&#8221; utilizzata moltissimo per poter testare strategie di tipo intraday.<\/p>\n<p>Bene, io sono Alessandro Ntanos, uno dei coach alla Unger Academy. E visto che in tanti ci chiedono come poter utilizzare in live la keyword &#8220;setexitonclose&#8221; oggi faremo una panoramica sull&#8217;utilizzo di questa parola riservata che sar&agrave; molto utile qualora si voglia sviluppare una strategia che chiuda le nostre posizioni alla fine della giornata.<\/p>\n<h3 id=\"definizione-setexitonclose\"><strong>Definizione setexitonclose<\/strong><\/h3>\n<p>Come detto la keyword &#8220;setexitonclose&#8221; &egrave; molto utile qualora si vogliano testare delle strategie di tipo intraday. Ma quindi quali sono le peculiarit&agrave; di questa keyword e a cosa dobbiamo stare attenti quando la utilizziamo?<\/p>\n<p>In questo ci viene incontro la definizione di MultiCharts, che possiamo trovare all&#8217;interno del Power Language Editor, ovviamente alla voce dell&#8217;indice &#8220;setexitonclose&#8221;. Quindi andremo a cercare &#8220;setexitonclose&#8221;. Eccolo qua in basso.<\/p>\n<p>E proprio qui viene detto che questa istruzione chiuder&agrave; le posizioni aperte, siano esse long o short, all&#8217;ultimo tick della barra della sessione generando un ordine market di uscita sia che il trade aperto sia long o short.<\/p>\n<p>Viene poi specificato che questa keyword &egrave; utilizzabile soltanto all&#8217;interno di un signal, ovvero una strategia che manda ordini a mercato. Sarebbe infatti inutilizzabile, questo tipo di parola riservata, per esempio su un indicatore.<\/p>\n<p>Per applicarla dunque a una strategia, lo vediamo qui in basso, sar&agrave; sufficiente riscriverla all&#8217;interno del nostro segnale per poter mandare questi ordini di chiusura del trade all&#8217;ultimissima barra, l&#8217;ultimo tick della sessione.<\/p>\n<p>La sessione a cui far&agrave; fede MultiCharts per chiudere le posizioni appunto all&#8217;ultimo tick sar&agrave; quella impostata, mi raccomando, nel Quote Manager. E viene specificato anche questo all&#8217;interno di questa descrizione nel dizionario del Power Language Editor.<\/p>\n<h3 id=\"strategia\"><strong>Strategia<\/strong><\/h3>\n<p>Passiamo adesso quindi a creare una strategia per vedere come utilizzare la keyword &#8220;setexitonclose&#8221; per i nostri studi. Io qua ho creato una strategia semplicissima che comprer&agrave; e vender&agrave; all&#8217;interno di una time window prestabilita.<\/p>\n<p>Questa time window &egrave; volta semplicemente ad eliminare dal backtest le prime due barre della sessione e le ultime due barre della sessione.<\/p>\n<p>Faremo i nostri test sul mercato dell&#8217;Oro a 15 minuti. Come sappiamo ha una sessione che va dalle 18 alle 17, quindi in questo modo partendo alle 18:30 e finendo alle 16:30 riusciamo a eliminare dal backtest le prime due e le ultime due barre.<\/p>\n<p>Dopodich&eacute; sempre all&#8217;interno della time window manderemo degli ordini in stop sul massimo e sul minimo della giornata precedente.<\/p>\n<p>A questo punto entra in gioco la nostra keyword &#8220;setexitonclose&#8221; . Utilizzeremo una condizione. Quindi se &#8220;ID&#8221;, che in questo caso &egrave; un input, sar&agrave; uguale a 1 allora chiuderemo le nostre posizioni alla fine della sessione.<\/p>\n<p>Se invece il valore di &#8220;ID&#8221; assumer&agrave; per esempio un valore diverso da 1, quindi non so 0, 2, 3, 4, allora vorr&agrave; dire che terremo le posizioni aperte anche oltre la fine della sessione trasformando quindi la strategia da intraday a multiday.<\/p>\n<h3 id=\"test-e-analisi\"><strong>Test e analisi<\/strong><\/h3>\n<p>Torniamo dunque all&#8217;interno di MultiCharts, dove vedete che ho caricato i dati dell&#8217;Oro come vi dicevo a 15 minuti e ho inserito la nostra strategia, che passa appunto da multiday a intraday. Andiamo a dare ora un rapido sguardo all&#8217;equity line della strategia multiday.<\/p>\n<p>Come vedete &egrave; questa qua. Nei primissimi anni di backtest, backtest che parte dal 2008 e dura fino ai giorni nostri, vediamo che nei primissimi anni sicuramente il breakout era pi&ugrave; continuo, pi&ugrave; costante potremmo dire.<\/p>\n<p>Poi c&#8217;&egrave; stata una fase molto lunga anche, potremmo dire, iniziata nel 2016 e durata fino al 2018-2019, dove invece il trend following non ha funzionato come in passato. Dopodich&eacute; di nuovo un rally e adesso una sorta di nuova pausa.<\/p>\n<p>Qualora invece modificassimo il nostro segnale, quindi da 0 a 1, in questo modo chiuderemmo le posizioni alla fine della giornata. Vedremo che chiaramente i risultati cambieranno e lo vedremo dopo meglio in maniera comparativa tra intraday e multiday.<\/p>\n<p>Vedete che effettivamente in questo caso anche l&#8217;intraday era stato molto pi&ugrave; costante fino al 2016 ma a differenza del multiday la strategia intraday in questo momento non ha pi&ugrave; toccato quelli che erano potremmo dire i picchi di equity.<\/p>\n<p>Ecco, s&igrave; li ha ritoccati proprio in questo punto per un momento per poi di nuovo ripiegare. Vedremo se in futuro anche l&#8217;intraday riuscir&agrave; a migliorare.<\/p>\n<p>Per andare a vedere i risultati e anche compararli tra multiday e intraday, quello che possiamo fare sar&agrave; andare direttamente a ottimizzare il nostro valore di &#8220;ID&#8221;, quindi il nostro input, da 0 a 1.<\/p>\n<p>Perch&eacute; in questo caso, come abbiamo detto, se &#8220;ID&#8221; assumer&agrave; valore zero allora terremo le posizioni aperte anche alla fine della sessione, mentre invece se utilizzeremo 1 chiuderemo alla fine della giornata.<\/p>\n<p>Ottimizzando questi valori riusciamo a vedere molto chiaramente le differenze tra le due strategie. Strategie che sono al momento ancora piuttosto grezze, possiamo dire, perch&eacute; mancano gli stop loss e tante altre cose, come condizioni per esempio per filtrare.<\/p>\n<p>Ma quello che innanzitutto possiamo vedere &egrave; che sicuramente con ID uguale a zero, quindi tenendo le posizioni aperte pi&ugrave; a lungo, il net profit &egrave; pi&ugrave; alto nell&#8217;arco storico considerato.<\/p>\n<p>Questo perch&eacute; chiaramente si d&agrave; pi&ugrave; tempo alla strategia di ottenere dei profitti buoni. Infatti viene rispecchiato dall&#8217;average trade, che vedete raggiunge i 140$.<\/p>\n<p>Mentre invece passando alla strategia intraday l&#8217;average trade crolla. Perch&eacute; chiaramente sono molte meno le barre in cui staremo a mercato. Quindi anche la strategia avr&agrave; molte pi&ugrave; difficolt&agrave; possiamo dire ad ottenere dei trade pi&ugrave; elevati.<\/p>\n<p>Oltretutto possiamo vedere una differenza cospicua nel numero di ingressi. Questo perch&eacute; ovviamente la strategia intraday aprir&agrave; e chiuder&agrave; i trade di giorno in giorno. Quindi tutti i giorni aprir&agrave; e chiuder&agrave; un trade mentre invece la strategia multiday lo terr&agrave; magari aperto per pi&ugrave; giorni. Di conseguenza si ottiene un numero di trade, un campione statistico, molto pi&ugrave; basso.<\/p>\n<p>Quello che &egrave; interessante, per&ograve;, &egrave; che a fronte di un guadagno che da un punto di vista puramente di valore assoluto &egrave; inferiore, la percent profitable, quindi la percentuale di profittabilit&agrave; della strategia intraday &egrave; pi&ugrave; alta, e non di poco, rispetto a quella multiday. Addirittura 48% circa in confronto a un 38,5% della strategia multiday.<\/p>\n<p>Quindi possiamo dire che la strategia intraday sar&agrave; sicuramente sempre meno profittevole rispetto a una strategia multiday. Ma comunque anche le strategie intraday riescono ad avere degli ottimi risultati e la peculiarit&agrave; &egrave; che appunto la percent profitable potrebbe essere pi&ugrave; elevata, perch&eacute; in ogni caso alla fine della sessione chiuderemo le nostre posizioni.<\/p>\n<p>Selezioniamo dunque &#8220;1&#8221;, quindi l&#8217;input intraday attivo, per vedere effettivamente sul chart che tipo di trade la strategia fa e come chiude le posizioni.<\/p>\n<p>Andando a stringere possiamo vedere che effettivamente all&#8217;ultimissima barra, quindi quella delle 17, all&#8217;ultimissimo tick, MultiCharts mander&agrave; un ordine di chiusura del trade.<\/p>\n<p>Ma questo dovrebbe farvi scattare un campanello d&#8217;allarme. Perch&eacute; se avete ascoltato bene quello che ho appena detto, se noi mandassimo un ordine di chiusura o un qualsiasi ordine subito dopo la chiusura della sessione, significa che il mercato &egrave; chiuso. E di conseguenza quel nostro ordine finirebbe in un limbo e non verrebbe eseguito fino all&#8217;apertura della sessione successiva. E noi non vogliamo chiaramente che questo accada.<\/p>\n<p>Questo significa che la keyword &#8220;setexitonclose&#8221; &egrave; utilizzabile soltanto in backtest cos&igrave; com&#8217;&egrave;, perch&eacute; altrimenti alla fine della giornata s&igrave;, manderebbe un ordine, ma quell&#8217;ordine non sarebbe eseguito perch&eacute; il mercato a quel punto &egrave; gi&agrave; chiuso.<\/p>\n<p>Quindi &egrave; molto utile in fase di backtest perch&eacute; in una riga di codice, lo abbiamo visto prima, possiamo decidere se chiudere o non chiudere le posizioni alla fine della giornata.<\/p>\n<h3 id=\"utilizzo-in-live\"><strong>Utilizzo in live<\/strong><\/h3>\n<p>Tuttavia per poterla poi utilizzare in live occorre creare una sorta di espediente, un escamotage, chiamiamolo cos&igrave;, per ingannare MultiCharts e quindi creare una sorta di &#8220;sessione farlocca&#8221; che tagli l&#8217;ultimo minuto della sessione in modo da poter mandare quell&#8217;ordine di setexitonclose un minuto prima della sessione ufficiale, e quindi poter effettivamente chiudere le nostre posizioni.<\/p>\n<p>Per fare questo baster&agrave; aprire il Quote Manager. Cliccare su &#8220;Session Templates&#8221;.<\/p>\n<p>Come potete vedere io l&#8217;ho gi&agrave; creata. Voi cliccherete su &#8220;Add&#8221; e creerete una sessione che sia uguale a questa. Quindi invece di aprire il mercato alle 18:00 e chiudere alle 17:00 chiuderemo un minuto prima.<\/p>\n<p>Quindi per MultiCharts, se io applicher&ograve; questo tipo di sessione al grafico su cui avevo messo la strategia, secondo MultiCharts la sessione del Gold chiuder&agrave; alle 16:59 invece che alle 17:00.<\/p>\n<p>In questo modo quando setexitonclose mander&agrave; l&#8217;ordine di uscita alle 16:59, il mercato sar&agrave; ancora aperto per un minuto e di conseguenza potremo chiudere le nostre posizioni.<\/p>\n<p>Quello che andremo a fare sar&agrave; quindi tornare sul nostro grafico e andare a settare la nostra sessione, che invece che essere quella di default sar&agrave; appunto &#8220;Comex__cut&#8221;. Eccola qua. E andiamo a cliccare su &#8220;OK&#8221;.<\/p>\n<p>A livello grafico non cambier&agrave; nulla. Semplicemente nasconderemo dai calcoli del backtest l&#8217;ultimo minuto di ogni sessione, ma questo non dovrebbe cambiare moltissimo.<\/p>\n<p>Il mio consiglio se volete utilizzare questo escamotage &egrave; di farlo solo sui mercati pi&ugrave; liquidi, perch&eacute; in questo modo non correrete il rischio di sostanzialmente non venire eseguiti nell&#8217;ultimo minuto. Perch&eacute; non &egrave; detto che su tutti i mercati l&#8217;ultimo minuto di contrattazione di una sessione sia effettivamente abbastanza liquido. Di conseguenza usate questo escamotage solamente sui mercati pi&ugrave; liquidi, su cui siete sicuri che effettivamente anche all&#8217;ultimissima barra, anche nell&#8217;ultimissimo minuto vi saranno dei compratori o dei venditori che potranno scambiare contratti con voi per chiudere quindi la vostra posizione.<\/p>\n<p>Abbiamo visto dunque che il &#8220;setexitonclose&#8221; pu&ograve; essere sicuramente molto utile in fase di backtest, ma che potrebbe essere utilizzato anche per il live. Come detto attenzione per&ograve;, non su tutti i mercati.<\/p>\n<p>Se tra voi c&#8217;&egrave; qualcuno interessato al mondo del trading sistematico vi lascio un link qua sotto in descrizione. Da l&igrave; potrete vedere una presentazione di Andrea Unger oppure ottenere il nostro libro best seller, &#8220;Il Metodo Unger&#8221;, coprendo solo le spese di spedizione. Oppure ancora prenotare una call gratuita con un membro del nostro team.<\/p>\n<p>Se il video vi &egrave; piaciuto mi raccomando, lasciate un Like, iscrivetevi al canale e attivate la campanella cos&igrave; da restare sempre aggiornati.<\/p>\n<p>Grazie per essere arrivati fino qua. Alla prossima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ciao ragazzi e bentornati sul nostro canale! Oggi vi voglio parlare della keyword &#8220;setexitonclose&#8221; utilizzata moltissimo per poter testare strategie [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[57],"tags":[],"class_list":["post-11971","post","type-post","status-publish","format-standard","hentry","category-blog"],"acf":[],"_links":{"self":[{"href":"https:\/\/ungeracademy.com\/it\/wp-json\/wp\/v2\/posts\/11971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ungeracademy.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ungeracademy.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ungeracademy.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ungeracademy.com\/it\/wp-json\/wp\/v2\/comments?post=11971"}],"version-history":[{"count":0,"href":"https:\/\/ungeracademy.com\/it\/wp-json\/wp\/v2\/posts\/11971\/revisions"}],"wp:attachment":[{"href":"https:\/\/ungeracademy.com\/it\/wp-json\/wp\/v2\/media?parent=11971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ungeracademy.com\/it\/wp-json\/wp\/v2\/categories?post=11971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ungeracademy.com\/it\/wp-json\/wp\/v2\/tags?post=11971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}