Programmazione Amibroker sviluppo di un semplice TS in amibroker (1 Viewer)

tesiag

Nuovo forumer
Mitico dejavu!!!! :lol: :bow:

La mitica, miracolosa, spettacolare tecnica del direct hedging dei "ragazzini del forex" torna periodicamente alla ribalta!!!! :lol:

C'erano alcuni broker forex che avevano piattaforme con la funzione "hedge" (invece di chiudere una posizione aperta ne aprivano un'altra opposta :lol:).

Gli permetteva di guadagnare molto di più (ai broker, ma non mi dilungo), e di illudere i "ragazzini" di poter fare a meno degli stop loss (potere dell'istinto irrazionale :bow:)!

Poi l'NFA l'ha vietato (credo nel 2009, a tutela degli "incapaci" :)), ed il sottobosco del mondo traderistico ha ovviamente gridato al complotto :lol:

In realtà ogni tanto salta ancora fuori qualche folle che intende farlo sul mercato azionario, per autoingannarsi abilmente :D

Barzellette che non ascoltarvo da tempo :up:

Per inciso: 1-1=0, sempre (a meno che non si usi la macchina di Turing!!! :D)

P.S. Questo post è dedicato al simpaticissimissimo alvin! :up:


bene, detto questo (by the way grazie del warning e delle curiosità storiche al riguardo) qualcosa relativo al listato che chiedo nei post sopra?

grazie
 

GiuliaP

The Dark Side
bene, detto questo (by the way grazie del warning e delle curiosità storiche al riguardo) qualcosa relativo al listato che chiedo nei post sopra?

grazie

No, non ne so niente di amibroker, ma credo tu abbia gia trovato le persone giuste per aiutarti.

Tuttavia, come pensiero laterale, potrei suggerirti di legarti una cordicella al dito quando vuoi considerare l'operazione un direct hedge. Tanto non cambia niente al portafoglio, e se necessario ti risparmi anche ben due operazioni da chiudere ;)

Perdonami e grazie per la pazienza dimostrata ;)
 

tesiag

Nuovo forumer
No, non ne so niente di amibroker, ma credo tu abbia gia trovato le persone giuste per aiutarti.

Tuttavia, come pensiero laterale, potrei suggerirti di legarti una cordicella al dito quando vuoi considerare l'operazione un direct hedge. Tanto non cambia niente al portafoglio, e se necessario ti risparmi anche ben due operazioni da chiudere ;)

Perdonami e grazie per la pazienza dimostrata ;)


figurati! :up:
 

reef

...
Confesso che anch'io non capisco la tecnica di aprire una posizione opposta anzichè chiudere quella eventualmente aperta.

Comunque con Ami puoi studiare a fondo quel che avviene sui due rami long e short trattandoli come TS separati. Ovvero fai così:
- prendi il titolo che ti interessa, es ENI
- ne crei una copia e lo chiami, che so, ENIs
- crei il tuo codice long TSl e quello short TSs
- metti i due titoli in una watchlist
Scrivi nel codice afl
If (name() == "ENI") {
codice TSl
}
elseif (name() == "ENIs") {
codice TSs
}

dopodichè fai girare il backtest sulla WL dicendogli di esplicitarti i movimenti per ogni Symbol.


Ovviamente al solo livello grafico è tutto più semplice, perchè i due TSl e TSs saranno due script separati che potranno essere visualizzati in due finestre dello stesso grafico (senza nemmeno il bisogno di creare la replica di ENI), dove potrai anche creare le equity e visualizzare i segnali.

Spero sia sufficientemente chiaro, benchè un po' sisntetico.
In bocca al lupo. :)
 

tesiag

Nuovo forumer
Confesso che anch'io non capisco la tecnica di aprire una posizione opposta anzichè chiudere quella eventualmente aperta.

Comunque con Ami puoi studiare a fondo quel che avviene sui due rami long e short trattandoli come TS separati. Ovvero fai così:
- prendi il titolo che ti interessa, es ENI
- ne crei una copia e lo chiami, che so, ENIs
- crei il tuo codice long TSl e quello short TSs
- metti i due titoli in una watchlist
Scrivi nel codice afl
If (name() == "ENI") {
codice TSl
}
elseif (name() == "ENIs") {
codice TSs
}

dopodichè fai girare il backtest sulla WL dicendogli di esplicitarti i movimenti per ogni Symbol.


Ovviamente al solo livello grafico è tutto più semplice, perchè i due TSl e TSs saranno due script separati che potranno essere visualizzati in due finestre dello stesso grafico (senza nemmeno il bisogno di creare la replica di ENI), dove potrai anche creare le equity e visualizzare i segnali.

Spero sia sufficientemente chiaro, benchè un po' sisntetico.
In bocca al lupo. :)


grazie mille reef. proverò la tua idea...quando avrò confezionato (con l'aiuto di qualcuno magari ;-) ) i listati per i due TS long e short, e magari il codice per visualizzare su grafico (intraday) i livelli di pivot su cui i TS triggerano i segnali.

a presto:)
 

tesiag

Nuovo forumer
allora ragazzi...il poco tempo a disposizione non mi fa procedere speditamente nello sviluppo del TS in amibroker. questo è il listato allo stato attuale.

in pratica vengono calcolati e plottati su grafico i livelli di pivot; vengono calcolati gli entry points (long e short) e per ciascuno di essi, con l'istruzione valuewhen, viene stabilito il livello target a cui vorrei impostare l'uscita dal trade.

ora l'istruzione
Buy = Cl_1 OR Cl_2 OR Cl_3 OR Cl_4 OR Cl_5;
identifica tutti gli entry points long.

il problema è il seguente: Non so come definire l'istruzione Sell
in modo tale che in corrispondenza ad ogni entry level il programma esca se e quando il target relativo è stato raggiunto.

ogni suggerimento è come sempre molto ben accetto.




_SECTION_BEGIN("Pivot Points");

yh =
TimeFrameGetPrice( "H", inDaily, -1 );
yl =
TimeFrameGetPrice( "L", inDaily, -1 );
yc =
TimeFrameGetPrice( "C", inDaily, -1 );

//---------------------------------------------------------------------------
// To calculate the Pivot Levels
//---------------------------------------------------------------------------
pivot = (yh + yl + yc) / 3;
range = yh - yl;

r1 = (
2 * pivot) - yl ;
s1 = (
2 * pivot) - yh ;
r2 = pivot - s1 + r1;
s2 = pivot - (r1 - s1) ;
r3 =
2 * (pivot - yl) + yh ;
s3 = yl - (
2 * (yh - pivot));

//---------------------------------------------------------------------------
// To Plot Pivot Levels in the screen
//---------------------------------------------------------------------------
 
Plot(pivot, "\n Pivot - ",colorGreen,1);
Plot(r1, "Resistance 1 - ",colorDarkRed,1);
Plot(r2, "Resistance 2 - ",colorDarkRed,1);
Plot(r3, "Resistance 3 - ",colorDarkRed,1);
Plot(s3, "Support 2 - ",colorDarkGreen,1);
Plot(s2, "Support 2 - ",colorDarkGreen,1);
Plot(s1, "Support 1 - ",colorDarkGreen,1);

_SECTION_END();
 
SetBacktestMode( backtestRegular );
SetOption("InitialEquity", 20000 );
PosQty =
4; // You can define here how many open positions you want
SetOption("MaxOpenPositions", PosQty );
PositionSize = -
100/PosQty; // invest 100% of portfolio equity divided by max. position count
 
// condizioni long
Cl_1 = L<r2 AND Ref(L,-1)>r2;
Cl_2 = L<r1 AND
Ref(L,-1)>r1;
Cl_3 = L<Pivot AND
Ref(L,-1)>Pivot;
Cl_4 = L<s1 AND
Ref(L,-1)>s1;
Cl_5 = L<s2 AND
Ref(L,-1)>s2;
// condizioni sell short
Cs_1 = H>r2 AND Ref(H,-1)<r2;
Cs_2 = H>r1 AND
Ref(H,-1)<r1;
Cs_3 = H>Pivot AND
Ref(H,-1)<Pivot;
Cs_4 = H>s1 AND
Ref(H,-1)<s1;
Cs_5 = H>s2 AND
Ref(H,-1)<s2;

// condizioni exit (livelli target di uscita da posizioni long e short)
tgt_l1 = ValueWhen (Cl_1, r3, 1);
tgt_l2 =
ValueWhen (Cl_2, r2, 1);
tgt_l3 =
ValueWhen (Cl_3, r1, 1);
tgt_l4 =
ValueWhen (Cl_4, Pivot, 1);
tgt_l5 =
ValueWhen (Cl_5, s1, 1);
 
tgt_s1 =
ValueWhen (Cs_1, r1, 1);
tgt_s2 =
ValueWhen (Cs_2, Pivot, 1);
tgt_s3 =
ValueWhen (Cs_3, s1, 1);
tgt_s4 =
ValueWhen (Cs_4, s2, 1);
tgt_s5 =
ValueWhen (Cs_5, s3, 1);
 
Buy = Cl_1 OR Cl_2 OR Cl_3 OR Cl_4 OR Cl_5;
Short = Cs_1 OR Cs_2 OR Cs_3 OR Cs_4 OR Cs_5;
 

Users who are viewing this thread

Alto