<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>http://traderpedia.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Formula_Turtle_Strategy</id>
	<title>Formula Turtle Strategy - Cronologia</title>
	<link rel="self" type="application/atom+xml" href="http://traderpedia.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Formula_Turtle_Strategy"/>
	<link rel="alternate" type="text/html" href="http://traderpedia.it/wiki/index.php?title=Formula_Turtle_Strategy&amp;action=history"/>
	<updated>2026-05-21T01:22:17Z</updated>
	<subtitle>Cronologia della pagina su questo sito</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>http://traderpedia.it/wiki/index.php?title=Formula_Turtle_Strategy&amp;diff=3023&amp;oldid=prev</id>
		<title>imported&gt;Stefano Fanton il 11:42, 20 apr 2012</title>
		<link rel="alternate" type="text/html" href="http://traderpedia.it/wiki/index.php?title=Formula_Turtle_Strategy&amp;diff=3023&amp;oldid=prev"/>
		<updated>2012-04-20T11:42:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;La definizione delle tartarughe implica nel trading system anche il money managemant (quanto rischiare in ogni operazione), quindi ho la necessita di conoscere quanto capitale ho disponibile e quante posizioni contemporanee posso aprire (piramidare in gergo). &lt;br /&gt;
&lt;br /&gt;
Siccome da Easy Language non ho variabili di sistema per leggere i valori impostati nella sezione &amp;quot;Costi&amp;quot; e nella sezione &amp;quot;Proprietà&amp;quot; del pannello di formattazione, sono stato costretto a prevedere gli stessi dati come Input della strategy. &lt;br /&gt;
&lt;br /&gt;
Descrizione variabili di Input: &lt;br /&gt;
&lt;br /&gt;
*'''DistH&amp;lt;br&amp;gt;'''''numero min di barre per rilevare un high break default (4)'' &lt;br /&gt;
*'''DistL&amp;lt;br&amp;gt;'''''numero min di barre per rilevare un low break default (4)'' &lt;br /&gt;
*'''Account&amp;lt;br&amp;gt;'''''capitale iniziale utilizzabile default (10000)''&lt;br /&gt;
&lt;br /&gt;
*'''MaxPercRisk&amp;lt;br&amp;gt;'''''definisce in percentuale il rischio relativo alla volatilità &amp;quot;N in gergo tartarughe&amp;quot; lo stop-loss è 2 volte questo parametro, di default (1)''&lt;br /&gt;
&lt;br /&gt;
*'''MaxOpenEntry&amp;lt;br&amp;gt;'''''numero massimo di posizioni aperte consecutive default (4)''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per capire meglio come inserire le variabili di Input guardare l'esempio nel workspace allegato. &lt;br /&gt;
&lt;br /&gt;
*'''Associazione colori break out:'''&lt;br /&gt;
&lt;br /&gt;
''• la linea blu sottile indica break high 20 barre.&amp;lt;br&amp;gt;• la linea blu spessa indica break high 55 barre.&amp;lt;br&amp;gt;• la linea ciano spessa indica break high entrate in piramide.&amp;lt;br&amp;gt;• la linea rossa sottile indica break low 20 barre.&amp;lt;br&amp;gt;• la linea rossa spessa indica break low 55 barre.&amp;lt;br&amp;gt;• la linea magenta spessa indica break low entrate in piramide.'' &lt;br /&gt;
&lt;br /&gt;
*'''Update Ver 0.1.0'''&lt;br /&gt;
&lt;br /&gt;
La versione aggiornata gestisce i nuovi ticks MTS in vigore da Feb. 2005 ed è stata divisa in due sotto release. La #1 tiene un ordine attivo solo il giorno successivo il BreakOut, mentre la #2 tiene L'ordine attivo per DistH -1 per i Buy Orders e DistL -1 per i Sell Orders. &lt;br /&gt;
&lt;br /&gt;
Mediamente va meglio la #2, ma su alcuni titoli è meglio la #1. &lt;br /&gt;
&lt;br /&gt;
== '''PositionMoneyMng''' ==&lt;br /&gt;
&lt;br /&gt;
''PositionMoneyMng(Account,PercRisk,Price,Loss)'' Ritorna il numero share per la posione da prendere a Price con massima perdita Loss garantendo una massima perdita PercRisk sul Account. &lt;br /&gt;
&lt;br /&gt;
INIZIO FORMULA&amp;lt;br&amp;gt;Inputs:Account(NumericSimple),PercRisk(NumericSimple),Price(NumericSimple),Loss(NumericSimple); &lt;br /&gt;
&lt;br /&gt;
PositionMoneyMng = Floor(Minlist(Account / Price,((Account * PercRisk) / 100) / Loss)); &lt;br /&gt;
&lt;br /&gt;
FINE FORMULA&lt;br /&gt;
&lt;br /&gt;
== '''TicksMTS''' ==&lt;br /&gt;
&lt;br /&gt;
Provided By: Carlo Bastelli nov. 2004 &lt;br /&gt;
&lt;br /&gt;
INIZIO FORMULA &lt;br /&gt;
&lt;br /&gt;
Inputs: Price(NumericSimple); &lt;br /&gt;
&lt;br /&gt;
if Price &amp;amp;lt;= 0.2500 then TicksMTS = 0.0001 else if Price &amp;amp;lt;= 1.0 then {0.2501 to 1.0 } TicksMTS = 0.0005 else if Price &amp;amp;lt;= 2.0 then {1.0001 to 2.0 } TicksMTS = 0.0010 else if Price &amp;amp;lt;= 5.0 then {2.0001 to 5.0 } TicksMTS = 0.0025 else if Price &amp;amp;lt;= 10.0 then {5.0001 to 10 } TicksMTS = 0.0050 else TicksMTS = 0.0100; &lt;br /&gt;
&lt;br /&gt;
FINE FORMULA &lt;br /&gt;
&lt;br /&gt;
== '''TicksRound''' ==&lt;br /&gt;
&lt;br /&gt;
Provided By: Carlo Bastelli feb. 2005 &lt;br /&gt;
&lt;br /&gt;
INIZIO FORMULA Inputs: Price(NumericSimple); Vars:Tick(0),Remaind(0); &lt;br /&gt;
&lt;br /&gt;
Tick=TicksMTS(Price); Remaind=Mod(Price,Tick); if (Remaind=0) then TicksRound=Price else if (Remaind&amp;amp;gt;=Tick/2) then TicksRound=Price-Remaind+Tick else TicksRound=Price-Remaind; FINE FORMULA&lt;br /&gt;
&lt;br /&gt;
== '''Tourtle Soup #1''' ==&lt;br /&gt;
&lt;br /&gt;
Provided By: Carlo Bastelli 2005 carlo_bastelli@yahoo.it&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
INIZIO FORMULA &lt;br /&gt;
&lt;br /&gt;
{ Turtle mode #1 Ver.0.1.0 03.02.2005 Ordine Buy/Sell solo la barra dopo break out }&amp;lt;br&amp;gt;{ Turtle mode #1 Ver.0.1.1 12.10.2005 Aggiunto Expert Commentary } &lt;br /&gt;
&lt;br /&gt;
Input:DistH(4),DistL(4),Account(10000),MaxPercRisk(2),MaxOpenEntry(4);&amp;lt;br&amp;gt;Var:TradeAccount(-1),PosSize(0),TrailBars(10),Eq(0),T1(0);&amp;lt;br&amp;gt;Var:cCurrentEntries(0),cAvgEntryPrice(0),cEntryPrice(0),cCurrentContracts(0);&amp;lt;br&amp;gt;Var:BuyStop(-1),BuyLimit(-1),LExitStop(-1),SellStop(-1),SellLimit(-1),SExitStop(-1);&amp;lt;br&amp;gt;Var:NextHigh(-1),NextLow(-1);&amp;lt;br&amp;gt;Var:BreakType(0),BreakStop(-1),BreakBars(0),BreakIsLoss(false),Break20Found(false),Break20SkipCnt(0); &lt;br /&gt;
&lt;br /&gt;
if Barnumber=1 then begin&amp;lt;br&amp;gt;VALUE29=-1;&amp;lt;br&amp;gt;VALUE38=-1;&amp;lt;br&amp;gt;end; &lt;br /&gt;
&lt;br /&gt;
cCurrentEntries=CurrentEntries;&amp;lt;br&amp;gt;cAvgEntryPrice=AvgEntryPrice;&amp;lt;br&amp;gt;cCurrentContracts=CurrentContracts;&amp;lt;br&amp;gt;if (cCurrentEntries&amp;amp;gt;cCurrentEntries[1]) then begin&amp;lt;br&amp;gt;cEntryPrice=(CurrentContracts*AvgEntryPrice-cCurrentContracts[1]*cAvgEntryPrice[1])/&amp;lt;br&amp;gt;(CurrentContracts-cCurrentContracts[1]);&amp;lt;br&amp;gt;if MarketPosition=1 then begin&amp;lt;br&amp;gt;LExitStop=TicksRound(cEntryPrice-2*XAverage(TrueRange,20));&amp;lt;br&amp;gt;NextHigh=cEntryPrice+0.5*XAverage(TrueRange,20);&amp;lt;br&amp;gt;NextHigh=TicksRound(NextHigh+TicksMTS(NextHigh));&amp;lt;br&amp;gt;VALUE29=-1;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else begin&amp;lt;br&amp;gt;SExitStop=TicksRound(cEntryPrice+2*XAverage(TrueRange,20));&amp;lt;br&amp;gt;NextLow=cEntryPrice-0.5*XAverage(TrueRange,20);&amp;lt;br&amp;gt;NextLow=TicksRound(NextLow-TicksMTS(NextLow));&amp;lt;br&amp;gt;VALUE38=-1;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;{print(cEntryPrice,&amp;quot; &amp;quot;,cCurrentEntries,&amp;quot; &amp;quot;,CurrentContracts-cCurrentContracts[1],&amp;quot; &amp;quot;,date);}&amp;lt;br&amp;gt;value99=date; { Date &amp;amp;amp; Time per linea entry multiple Buy/Sell }&amp;lt;br&amp;gt;value98=time;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;if (cCurrentEntries=0 and cCurrentEntries[1]&amp;amp;lt;&amp;amp;gt;0) then begin&amp;lt;br&amp;gt;NextHigh=-1;&amp;lt;br&amp;gt;NextLow=-1;&amp;lt;br&amp;gt;LExitStop=-1;&amp;lt;br&amp;gt;SExitStop=-1;&amp;lt;br&amp;gt;if VALUE29&amp;amp;gt;=0 then&amp;lt;br&amp;gt;TL_Delete(VALUE29);&amp;lt;br&amp;gt;VALUE29=-1;&amp;lt;br&amp;gt;if VALUE38&amp;amp;gt;=0 then&amp;lt;br&amp;gt;TL_Delete(VALUE38);&amp;lt;br&amp;gt;VALUE38=-1;&amp;lt;br&amp;gt;end; &lt;br /&gt;
&lt;br /&gt;
{ Gestione Exit Stop &amp;amp;amp; Trailing }&amp;lt;br&amp;gt;if MarketPosition=1 then begin&amp;lt;br&amp;gt;ExitLong (&amp;quot;LES&amp;quot;) next bar at LExitStop stop;&amp;lt;br&amp;gt;if BarsSinceEntry&amp;amp;gt;TrailBars then&amp;lt;br&amp;gt;ExitLong (&amp;quot;LET&amp;quot;) next bar at TicksRound(Lowest(Low,TrailBars)) stop;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else if MarketPosition=-1 then begin&amp;lt;br&amp;gt;ExitShort (&amp;quot;SES&amp;quot;) next bar at SExitStop stop;&amp;lt;br&amp;gt;if BarsSinceEntry&amp;amp;gt;TrailBars then&amp;lt;br&amp;gt;ExitShort (&amp;quot;SET&amp;quot;) next bar at TicksRound(Highest(High,TrailBars)) stop;&amp;lt;br&amp;gt;end; &lt;br /&gt;
&lt;br /&gt;
Break20Found=false;&amp;lt;br&amp;gt;{ Genera segnali Buy Break High 20 bars }&amp;lt;br&amp;gt;if H&amp;amp;gt;=Highest(H,20)[1] then begin&amp;lt;br&amp;gt;value1=H;&amp;lt;br&amp;gt;value2=BarNumber;&amp;lt;br&amp;gt;value3=value2[0]-value2[1]; &lt;br /&gt;
&lt;br /&gt;
if value3&amp;amp;gt;DistH and value1[0]&amp;amp;gt;=value1[1] and value1[1]&amp;amp;lt;&amp;amp;gt;0 and NextHigh=-1 then begin&amp;lt;br&amp;gt;{BuyStop=value1[1]-TicksMTS(value1[1])-XAverage(TrueRange,20);&amp;lt;br&amp;gt;BuyLimit=value1[1]+XAverage(TrueRange,20);}&amp;lt;br&amp;gt;if BreakIsLoss or Break20SkipCnt&amp;amp;gt;0 then begin&amp;lt;br&amp;gt;BuyStop=TicksRound(value1[1]+TicksMTS(value1[1]));&amp;lt;br&amp;gt;BuyLimit=TicksRound(value1[0]-XAverage(TrueRange,20));&amp;lt;br&amp;gt;Break20SkipCnt=0;&amp;lt;br&amp;gt;Break20Found=true;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else&amp;lt;br&amp;gt;Break20SkipCnt=Break20SkipCnt+1;&amp;lt;br&amp;gt;VALUE9=TL_New(date[value3+1],time[value3+1],high[value3],date,time,high[value3]);&amp;lt;br&amp;gt;TL_SetSize(VALUE9, 1);&amp;lt;br&amp;gt;TL_SetColor(VALUE9, Blue);&amp;lt;br&amp;gt;if BreakType=0 then begin&amp;lt;br&amp;gt;BreakBars=0;&amp;lt;br&amp;gt;BreakType=1;&amp;lt;br&amp;gt;{BreakIsLoss=false;}&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;{ Genera segnali Buy Break High 55 bars }&amp;lt;br&amp;gt;if H&amp;amp;gt;=Highest(H,55)[1] then begin&amp;lt;br&amp;gt;value4=H;&amp;lt;br&amp;gt;value5=BarNumber;&amp;lt;br&amp;gt;value6=value5[0]-value5[1]; &lt;br /&gt;
&lt;br /&gt;
if value6&amp;amp;gt;DistH and value4[0]&amp;amp;gt;=value4[1] and value4[1]&amp;amp;lt;&amp;amp;gt;0 and Break20Found&amp;amp;lt;&amp;amp;gt;true and NextHigh=-1 then begin&amp;lt;br&amp;gt;BuyStop=TicksRound(value4[1]+TicksMTS(value4[1]));&amp;lt;br&amp;gt;BuyLimit=TicksRound(value4[0]-XAverage(TrueRange,20));&amp;lt;br&amp;gt;Break20SkipCnt=0;&amp;lt;br&amp;gt;VALUE9=TL_New(date[value6+1],time[value6+1],high[value6],date,time,high[value6]);&amp;lt;br&amp;gt;TL_SetSize(VALUE9, 3);&amp;lt;br&amp;gt;TL_SetColor(VALUE9, blue);&amp;lt;br&amp;gt;if BreakType=0 then begin&amp;lt;br&amp;gt;BreakBars=0;&amp;lt;br&amp;gt;BreakType=1;&amp;lt;br&amp;gt;{BreakIsLoss=false;}&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end; &lt;br /&gt;
&lt;br /&gt;
Break20Found=false;&amp;lt;br&amp;gt;{ Genera segnali Sell Break Low 20 bars }&amp;lt;br&amp;gt;if L&amp;amp;lt;=Lowest(L,20)[1] then begin&amp;lt;br&amp;gt;value10=L;&amp;lt;br&amp;gt;value11=BarNumber;&amp;lt;br&amp;gt;value12=value11[0]-value11[1]; &lt;br /&gt;
&lt;br /&gt;
if value12&amp;amp;gt;DistL and value10[0]&amp;amp;lt;=value10[1] and value10[1]&amp;amp;lt;&amp;amp;gt;0 and NextLow=-1 then begin&amp;lt;br&amp;gt;if BreakIsLoss or Break20SkipCnt&amp;amp;gt;0 then begin&amp;lt;br&amp;gt;SellStop=TicksRound(value10[1]-TicksMTS(value10[1]));&amp;lt;br&amp;gt;SellLimit=TicksRound(value10[0]+XAverage(TrueRange,20));&amp;lt;br&amp;gt;Break20SkipCnt=0;&amp;lt;br&amp;gt;Break20Found=true;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else&amp;lt;br&amp;gt;Break20SkipCnt=Break20SkipCnt+1;&amp;lt;br&amp;gt;VALUE19=TL_New(date[value12+1],time[value12+1],Low[value12],date,time,Low[value12]);&amp;lt;br&amp;gt;TL_SetSize(VALUE19, 1);&amp;lt;br&amp;gt;TL_SetColor(VALUE19, Red);&amp;lt;br&amp;gt;if BreakType=0 then begin&amp;lt;br&amp;gt;BreakBars=0;&amp;lt;br&amp;gt;BreakType=-1;&amp;lt;br&amp;gt;{BreakIsLoss=false;}&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end; &lt;br /&gt;
&lt;br /&gt;
end;&amp;lt;br&amp;gt;{ Genera segnali Sell Break Low 55 bars }&amp;lt;br&amp;gt;if L&amp;amp;lt;=Lowest(L,55)[1] then begin&amp;lt;br&amp;gt;value13=L;&amp;lt;br&amp;gt;value14=BarNumber;&amp;lt;br&amp;gt;value15=value14[0]-value14[1]; &lt;br /&gt;
&lt;br /&gt;
if value15&amp;amp;gt;DistL and value13[0]&amp;amp;lt;=value13[1] and value13[1]&amp;amp;lt;&amp;amp;gt;0 and Break20Found&amp;amp;lt;&amp;amp;gt;true and NextLow=-1 then begin&amp;lt;br&amp;gt;SellStop=TicksRound(value13[1]-TicksMTS(value13[1]));&amp;lt;br&amp;gt;SellLimit=TicksRound(value13[0]+XAverage(TrueRange,20));&amp;lt;br&amp;gt;Break20SkipCnt=0;&amp;lt;br&amp;gt;VALUE19=TL_New(date[value15+1],time[value15+1],Low[value15],date,time,Low[value15]);&amp;lt;br&amp;gt;TL_SetSize(VALUE19, 3);&amp;lt;br&amp;gt;TL_SetColor(VALUE19, Red);&amp;lt;br&amp;gt;if BreakType=0 then begin&amp;lt;br&amp;gt;BreakBars=0;&amp;lt;br&amp;gt;BreakType=-1;&amp;lt;br&amp;gt;{BreakIsLoss=false;}&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end; &lt;br /&gt;
&lt;br /&gt;
{ Gestione entry multiple high }&amp;lt;br&amp;gt;if NextHigh&amp;amp;lt;&amp;amp;gt;-1 and cCurrentEntries&amp;amp;lt;MaxOpenEntry and TradeAccount&amp;amp;gt;0 then begin&amp;lt;br&amp;gt;if H&amp;amp;gt;=Nexthigh then begin&amp;lt;br&amp;gt;{print(&amp;quot;BuyStop&amp;amp;nbsp;:&amp;quot;,BuyStop,&amp;quot; &amp;quot;,NextHigh,&amp;quot; &amp;quot;,date);}&amp;lt;br&amp;gt;BuyStop=NextHigh;&amp;lt;br&amp;gt;BuyLimit=NextHigh;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;if VALUE29&amp;amp;gt;=0 then&amp;lt;br&amp;gt;TL_Delete(VALUE29);&amp;lt;br&amp;gt;VALUE29=TL_New(value99,value98,NextHigh,date+1,time,NextHigh);&amp;lt;br&amp;gt;TL_SetSize(VALUE29, 3);&amp;lt;br&amp;gt;TL_SetColor(VALUE29, Cyan);&amp;lt;br&amp;gt;end; &lt;br /&gt;
&lt;br /&gt;
{ Gestione entry multiple low }&amp;lt;br&amp;gt;if NextLow&amp;amp;lt;&amp;amp;gt;-1 and cCurrentEntries&amp;amp;lt;MaxOpenEntry and TradeAccount&amp;amp;gt;0 then begin&amp;lt;br&amp;gt;if L&amp;amp;lt;=NextLow then begin&amp;lt;br&amp;gt;SellStop=NextLow;&amp;lt;br&amp;gt;SellLimit=NextLow;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;if VALUE38&amp;amp;gt;=0 then&amp;lt;br&amp;gt;TL_Delete(VALUE38);&amp;lt;br&amp;gt;value38=TL_New(value99,value98,NextLow,date+1,time,NextLow);&amp;lt;br&amp;gt;TL_SetSize(value38, 3);&amp;lt;br&amp;gt;TL_SetColor(value38, Magenta);&amp;lt;br&amp;gt;end; &lt;br /&gt;
&lt;br /&gt;
{ Verifica ultimo break in loss }&amp;lt;br&amp;gt;if BreakType&amp;amp;lt;&amp;amp;gt;0 then begin&amp;lt;br&amp;gt;if BreakBars&amp;amp;lt;=11 then begin&amp;lt;br&amp;gt;if BreakType=1 then&amp;lt;br&amp;gt;BreakIsLoss=BreakIsLoss or (BreakStop&amp;amp;lt;=Lowest(Low,BreakBars-1))&amp;lt;br&amp;gt;else&amp;lt;br&amp;gt;BreakIsLoss=BreakIsLoss or (BreakStop&amp;amp;gt;=Highest(High,BreakBars-1));&amp;lt;br&amp;gt;BreakBars=BreakBars+1;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else begin&amp;lt;br&amp;gt;BreakType=0;&amp;lt;br&amp;gt;BreakIsLoss=false;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end; &lt;br /&gt;
&lt;br /&gt;
if MarketPosition&amp;amp;lt;&amp;amp;gt;-1 and BuyStop&amp;amp;lt;&amp;amp;gt;-1 then begin { Genera ordini Buy }&amp;lt;br&amp;gt;TradeAccount=Account-(CurrentContracts*AvgEntryPrice)+NetProfit;&amp;lt;br&amp;gt;{print(&amp;quot;BuyStop&amp;amp;nbsp;:&amp;quot;,BuyStop,&amp;quot; &amp;quot;,TradeAccount,&amp;quot; &amp;quot;,date);}&amp;lt;br&amp;gt;if TradeAccount&amp;amp;gt;2*maxlist(BuyStop,BuyLimit) then begin&amp;lt;br&amp;gt;PosSize=PositionMoneyMng(TradeAccount,MaxPercRisk,BuyLimit,2*XAverage(TrueRange,20));&amp;lt;br&amp;gt;Buy (&amp;quot;TLE&amp;quot;) PosSize shares next bar at BuyStop stop;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else&amp;lt;br&amp;gt;TradeAccount=-1;&amp;lt;br&amp;gt;BuyStop=-1;&amp;lt;br&amp;gt;BuyLimit=-1;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else if MarketPosition&amp;amp;lt;&amp;amp;gt;1 and SellStop&amp;amp;lt;&amp;amp;gt;-1 then begin { Genera ordini Sell }&amp;lt;br&amp;gt;TradeAccount=Account-(CurrentContracts*AvgEntryPrice)+NetProfit;&amp;lt;br&amp;gt;if TradeAccount&amp;amp;gt;2*minlist(SellStop,SellLimit)then begin&amp;lt;br&amp;gt;PosSize=PositionMoneyMng(TradeAccount,MaxPercRisk,SellLimit,2*XAverage(TrueRange,20));&amp;lt;br&amp;gt;Sell (&amp;quot;TSE&amp;quot;) PosSize shares next bar at SellStop stop;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else&amp;lt;br&amp;gt;TradeAccount=-1;&amp;lt;br&amp;gt;SellStop=-1;&amp;lt;br&amp;gt;SellLimit=-1;&amp;lt;br&amp;gt;end; &lt;br /&gt;
&lt;br /&gt;
{ Expert Commentary Report }&amp;lt;br&amp;gt;If AtCommentaryBar then begin&amp;lt;br&amp;gt;Eq=Account-(CurrentContracts*AvgEntryPrice)+NetProfit;&amp;lt;br&amp;gt;Vars:Str(&amp;quot;&amp;quot;);&amp;lt;br&amp;gt;Str=Str+&amp;quot;*************** System inputs **************************&amp;quot;+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Starting Capital&amp;amp;nbsp;: &amp;quot;+NumToStr(Account,2)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Percentage of Equity to risk&amp;amp;nbsp;: &amp;quot;+NumToStr(MaxPercRisk,2)+&amp;quot;&amp;amp;nbsp;% &amp;quot;+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;*************** Current statistics ************************&amp;quot;+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Market position&amp;amp;nbsp;: &amp;quot;+NumToStr(MarketPosition,0)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Current Shares held&amp;amp;nbsp;: &amp;quot;+NumToStr(cCurrentContracts,0)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Current Equity&amp;amp;nbsp;: &amp;quot;+NumToStr(Eq,2)+NewLine;&amp;lt;br&amp;gt;if BuyStop&amp;amp;lt;&amp;amp;gt;-1 or SellStop&amp;amp;lt;&amp;amp;gt;-1 then&amp;lt;br&amp;gt;Str=Str+&amp;quot;Percentage of current Equity to risk&amp;amp;nbsp;: &amp;quot;+NumToStr(MaxPercRisk,2)+&amp;quot;&amp;amp;nbsp;% equals &amp;quot;+NumToStr(-Eq*MaxPercRisk/100,2)+&amp;quot; dollars &amp;quot;+NewLine;&amp;lt;br&amp;gt;If BuyStop&amp;amp;lt;&amp;amp;gt;-1 then begin&amp;lt;br&amp;gt;Str=Str+&amp;quot;Entry Long&amp;amp;nbsp;: &amp;quot;+NumToStr(BuyStop,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Exit Long&amp;amp;nbsp;: &amp;quot; +NumToStr(TicksRound(BuyStop-2*XAverage(TrueRange,20)),4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Difference between Entry Long and Exit Long in Dollars&amp;amp;nbsp;: &amp;quot;+NumToStr(TicksRound(2*XAverage(TrueRange,20)),4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Number of shares to buy to risk &amp;quot;+NumToStr(MaxPercRisk,2)+&amp;quot;&amp;amp;nbsp;% of capital&amp;amp;nbsp;: &amp;quot;+NumToStr(PosSize,0)+NewLine;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else If MarketPosition=1 then begin&amp;lt;br&amp;gt;Eq=Account+NetProfit;&amp;lt;br&amp;gt;T1=-cCurrentContracts*(cAvgEntryPrice-LExitStop);&amp;lt;br&amp;gt;Str=Str+&amp;quot;Percentage of current Equity to risk&amp;amp;nbsp;: &amp;quot;+NumToStr(AbsValue(100*T1/Eq),2)+&amp;quot;&amp;amp;nbsp;% equals &amp;quot;+NumToStr(T1,2)+&amp;quot; dollars &amp;quot;+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Entry Long&amp;amp;nbsp;: &amp;quot;+NumToStr(cEntryPrice,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Exit Long&amp;amp;nbsp;: &amp;quot; +NumToStr(LExitStop,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Difference between Entry Long and Exit Long in Dollars&amp;amp;nbsp;: &amp;quot;+NumToStr(cEntryPrice-LExitStop,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Open Position Profit in Dollars&amp;amp;nbsp;: &amp;quot;+NumToStr(OpenPositionProfit,2)+NewLine;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;If SellStop&amp;amp;lt;&amp;amp;gt;-1 then begin&amp;lt;br&amp;gt;Str=Str+&amp;quot;Entry Short&amp;amp;nbsp;: &amp;quot;+NumToStr(SellStop,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Exit Short&amp;amp;nbsp;: &amp;quot; +NumToStr(TicksRound(SellStop+2*XAverage(TrueRange,20)),4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Difference between Entry Short and Exit Short in Dollars&amp;amp;nbsp;: &amp;quot;+NumToStr(TicksRound(2*XAverage(TrueRange,20)),4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Number of shares to Sell to risk &amp;quot;+NumToStr(MaxPercRisk,2)+&amp;quot;&amp;amp;nbsp;% of capital&amp;amp;nbsp;: &amp;quot;+NumToStr(PosSize,0)+NewLine;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else If MarketPosition=-1 then begin&amp;lt;br&amp;gt;Eq=Account+NetProfit;&amp;lt;br&amp;gt;T1=-cCurrentContracts*(SExitStop-cAvgEntryPrice);&amp;lt;br&amp;gt;Str=Str+&amp;quot;Percentage of current Equity to risk&amp;amp;nbsp;: &amp;quot;+NumToStr(AbsValue(100*T1/Eq),2)+&amp;quot;&amp;amp;nbsp;% equals &amp;quot;+NumToStr(T1,2)+&amp;quot; dollars &amp;quot;+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Entry Short&amp;amp;nbsp;: &amp;quot;+NumToStr(cEntryPrice,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Exit Short&amp;amp;nbsp;: &amp;quot; +NumToStr(SExitStop,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Difference between Entry Short and Exit Short in Dollars&amp;amp;nbsp;: &amp;quot;+NumToStr(SExitStop-cEntryPrice,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Open Position Profit in Dollars&amp;amp;nbsp;: &amp;quot;+NumToStr(OpenPositionProfit,2)+NewLine;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;Commentary(Str);&amp;lt;br&amp;gt;end; &lt;br /&gt;
&lt;br /&gt;
FINE FORMULA&lt;br /&gt;
&lt;br /&gt;
== '''Tourtle Soup #2''' ==&lt;br /&gt;
&lt;br /&gt;
Provided By: Carlo Bastelli 2005 carlo_bastelli@yahoo.it&amp;lt;br&amp;gt;&lt;br /&gt;
Turtle mode #2 Ver.0.1.0 03.02.2005 Ordini ripetuti piu' barre }&amp;lt;br&amp;gt;{ Turtle mode #2 Ver.0.1.1 12.10.2005 Aggiunto Expert Commentary&lt;br /&gt;
&lt;br /&gt;
INIZIO FORMULA &lt;br /&gt;
&lt;br /&gt;
Input:DistH(4),DistL(4),Account(10000),MaxPercRisk(2),MaxOpenEntry(4);&amp;lt;br&amp;gt;Var:TradeAccount(-1),PosSize(0),TrailBars(10),Eq(0),T1(0);&amp;lt;br&amp;gt;Var:cCurrentEntries(0),cAvgEntryPrice(0),cEntryPrice(0),cCurrentContracts(0);&amp;lt;br&amp;gt;Var:BuyStop(-1),BuyLimit(-1),LExitStop(-1),SellStop(-1),SellLimit(-1),SExitStop(-1);&amp;lt;br&amp;gt;Var:NextHigh(-1),NextLow(-1),BarUntil(-1);&amp;lt;br&amp;gt;Var:BreakType(0),BreakStop(-1),BreakBars(0),BreakIsLoss(false),Break20Found(false),Break20SkipCnt(0);&lt;br /&gt;
&lt;br /&gt;
if Barnumber=1 then begin&amp;lt;br&amp;gt;VALUE29=-1;&amp;lt;br&amp;gt;VALUE38=-1;&amp;lt;br&amp;gt;end;&lt;br /&gt;
&lt;br /&gt;
cCurrentEntries=CurrentEntries;&amp;lt;br&amp;gt;cAvgEntryPrice=AvgEntryPrice;&amp;lt;br&amp;gt;cCurrentContracts=CurrentContracts;&amp;lt;br&amp;gt;if (cCurrentEntries&amp;amp;gt;cCurrentEntries[1]) then begin&amp;lt;br&amp;gt;cEntryPrice=(CurrentContracts*AvgEntryPrice-cCurrentContracts[1]*cAvgEntryPrice[1])/&amp;lt;br&amp;gt;(CurrentContracts-cCurrentContracts[1]);&amp;lt;br&amp;gt;if MarketPosition=1 then begin&amp;lt;br&amp;gt;LExitStop=TicksRound(cEntryPrice-2*XAverage(TrueRange,20));&amp;lt;br&amp;gt;NextHigh=cEntryPrice+0.5*XAverage(TrueRange,20);&amp;lt;br&amp;gt;NextHigh=TicksRound(NextHigh+TicksMTS(NextHigh));&amp;lt;br&amp;gt;BuyStop=-1;&amp;lt;br&amp;gt;BuyLimit=-1;&amp;lt;br&amp;gt;BarUntil=-1;&amp;lt;br&amp;gt;VALUE29=-1;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else begin&amp;lt;br&amp;gt;SExitStop=TicksRound(cEntryPrice+2*XAverage(TrueRange,20));&amp;lt;br&amp;gt;NextLow=cEntryPrice-0.5*XAverage(TrueRange,20);&amp;lt;br&amp;gt;NextLow=TicksRound(NextLow-TicksMTS(NextLow));&amp;lt;br&amp;gt;SellStop=-1;&amp;lt;br&amp;gt;SellLimit=-1;&amp;lt;br&amp;gt;BarUntil=-1;&amp;lt;br&amp;gt;VALUE38=-1;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;value99=date; { Date &amp;amp;amp; Time per linea entry multiple Buy/Sell }&amp;lt;br&amp;gt;value98=time;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;if (cCurrentEntries=0 and cCurrentEntries[1]&amp;amp;lt;&amp;amp;gt;0) then begin&amp;lt;br&amp;gt;NextHigh=-1;&amp;lt;br&amp;gt;NextLow=-1;&amp;lt;br&amp;gt;LExitStop=-1;&amp;lt;br&amp;gt;SExitStop=-1;&amp;lt;br&amp;gt;BuyStop=-1;&amp;lt;br&amp;gt;BuyLimit=-1;&amp;lt;br&amp;gt;SellStop=-1;&amp;lt;br&amp;gt;SellLimit=-1;&amp;lt;br&amp;gt;BarUntil=-1;&amp;lt;br&amp;gt;if VALUE29&amp;amp;gt;=0 then&amp;lt;br&amp;gt;TL_Delete(VALUE29);&amp;lt;br&amp;gt;VALUE29=-1;&amp;lt;br&amp;gt;if VALUE38&amp;amp;gt;=0 then&amp;lt;br&amp;gt;TL_Delete(VALUE38);&amp;lt;br&amp;gt;VALUE38=-1;&amp;lt;br&amp;gt;end;&lt;br /&gt;
&lt;br /&gt;
{ Gestione Exit Stop &amp;amp;amp; Trailing }&amp;lt;br&amp;gt;if MarketPosition=1 then begin&amp;lt;br&amp;gt;ExitLong (&amp;quot;LES&amp;quot;) next bar at LExitStop stop;&amp;lt;br&amp;gt;if BarsSinceEntry&amp;amp;gt;TrailBars then&amp;lt;br&amp;gt;ExitLong (&amp;quot;LET&amp;quot;) next bar at TicksRound(Lowest(Low,TrailBars)) stop;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else if MarketPosition=-1 then begin&amp;lt;br&amp;gt;ExitShort (&amp;quot;SES&amp;quot;) next bar at SExitStop stop;&amp;lt;br&amp;gt;if BarsSinceEntry&amp;amp;gt;TrailBars then&amp;lt;br&amp;gt;ExitShort (&amp;quot;SET&amp;quot;) next bar at TicksRound(Highest(High,TrailBars)) stop;&amp;lt;br&amp;gt;end;&lt;br /&gt;
&lt;br /&gt;
Break20Found=false;&amp;lt;br&amp;gt;{ Genera segnali Buy Break High 20 bars }&amp;lt;br&amp;gt;if H&amp;amp;gt;=Highest(H,20)[1] then begin&amp;lt;br&amp;gt;value1=H;&amp;lt;br&amp;gt;value2=BarNumber;&amp;lt;br&amp;gt;value3=value2[0]-value2[1];&lt;br /&gt;
&lt;br /&gt;
if value3&amp;amp;gt;DistH and value1[0]&amp;amp;gt;=value1[1] and value1[1]&amp;amp;lt;&amp;amp;gt;0 and NextHigh=-1 then begin&amp;lt;br&amp;gt;{BuyStop=value1[1]-TicksMTS(value1[1])-XAverage(TrueRange,20);&amp;lt;br&amp;gt;BuyLimit=value1[1]+XAverage(TrueRange,20);}&amp;lt;br&amp;gt;if BreakIsLoss or Break20SkipCnt&amp;amp;gt;0 then begin&amp;lt;br&amp;gt;BuyStop=TicksRound(value1[1]+TicksMTS(value1[1]));&amp;lt;br&amp;gt;BuyLimit=TicksRound(value1[0]-XAverage(TrueRange,20));&amp;lt;br&amp;gt;Break20SkipCnt=0;&amp;lt;br&amp;gt;Break20Found=true;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else&amp;lt;br&amp;gt;Break20SkipCnt=Break20SkipCnt+1;&amp;lt;br&amp;gt;VALUE9=TL_New(date[value3+1],time[value3+1],high[value3],date,time,high[value3]);&amp;lt;br&amp;gt;TL_SetSize(VALUE9, 1);&amp;lt;br&amp;gt;TL_SetColor(VALUE9, Blue);&amp;lt;br&amp;gt;if BreakType=0 then begin&amp;lt;br&amp;gt;BreakBars=0;&amp;lt;br&amp;gt;BreakType=1;&amp;lt;br&amp;gt;{BreakIsLoss=false;}&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;{ Genera segnali Buy Break High 55 bars }&amp;lt;br&amp;gt;if H&amp;amp;gt;=Highest(H,55)[1] then begin&amp;lt;br&amp;gt;value4=H;&amp;lt;br&amp;gt;value5=BarNumber;&amp;lt;br&amp;gt;value6=value5[0]-value5[1];&lt;br /&gt;
&lt;br /&gt;
if value6&amp;amp;gt;DistH and value4[0]&amp;amp;gt;=value4[1] and value4[1]&amp;amp;lt;&amp;amp;gt;0 and Break20Found&amp;amp;lt;&amp;amp;gt;true and NextHigh=-1 then begin&amp;lt;br&amp;gt;BuyStop=TicksRound(value4[1]+TicksMTS(value4[1]));&amp;lt;br&amp;gt;BuyLimit=TicksRound(value4[0]-XAverage(TrueRange,20));&amp;lt;br&amp;gt;Break20SkipCnt=0;&amp;lt;br&amp;gt;VALUE9=TL_New(date[value6+1],time[value6+1],high[value6],date,time,high[value6]);&amp;lt;br&amp;gt;TL_SetSize(VALUE9, 3);&amp;lt;br&amp;gt;TL_SetColor(VALUE9, blue);&amp;lt;br&amp;gt;if BreakType=0 then begin&amp;lt;br&amp;gt;BreakBars=0;&amp;lt;br&amp;gt;BreakType=1;&amp;lt;br&amp;gt;{BreakIsLoss=false;}&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&lt;br /&gt;
&lt;br /&gt;
Break20Found=false;&amp;lt;br&amp;gt;{ Genera segnali Sell Break Low 20 bars }&amp;lt;br&amp;gt;if L&amp;amp;lt;=Lowest(L,20)[1] then begin&amp;lt;br&amp;gt;value10=L;&amp;lt;br&amp;gt;value11=BarNumber;&amp;lt;br&amp;gt;value12=value11[0]-value11[1];&lt;br /&gt;
&lt;br /&gt;
if value12&amp;amp;gt;DistL and value10[0]&amp;amp;lt;=value10[1] and value10[1]&amp;amp;lt;&amp;amp;gt;0 and NextLow=-1 then begin&amp;lt;br&amp;gt;if BreakIsLoss or Break20SkipCnt&amp;amp;gt;0 then begin&amp;lt;br&amp;gt;SellStop=TicksRound(value10[1]-TicksMTS(value10[1]));&amp;lt;br&amp;gt;SellLimit=TicksRound(value10[0]+XAverage(TrueRange,20));&amp;lt;br&amp;gt;Break20SkipCnt=0;&amp;lt;br&amp;gt;Break20Found=true;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else&amp;lt;br&amp;gt;Break20SkipCnt=Break20SkipCnt+1;&amp;lt;br&amp;gt;VALUE19=TL_New(date[value12+1],time[value12+1],Low[value12],date,time,Low[value12]);&amp;lt;br&amp;gt;TL_SetSize(VALUE19, 1);&amp;lt;br&amp;gt;TL_SetColor(VALUE19, Red);&amp;lt;br&amp;gt;if BreakType=0 then begin&amp;lt;br&amp;gt;BreakBars=0;&amp;lt;br&amp;gt;BreakType=-1;&amp;lt;br&amp;gt;{BreakIsLoss=false;}&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&lt;br /&gt;
&lt;br /&gt;
end;&amp;lt;br&amp;gt;{ Genera segnali Sell Break Low 55 bars }&amp;lt;br&amp;gt;if L&amp;amp;lt;=Lowest(L,55)[1] then begin&amp;lt;br&amp;gt;value13=L;&amp;lt;br&amp;gt;value14=BarNumber;&amp;lt;br&amp;gt;value15=value14[0]-value14[1];&lt;br /&gt;
&lt;br /&gt;
if value15&amp;amp;gt;DistL and value13[0]&amp;amp;lt;=value13[1] and value13[1]&amp;amp;lt;&amp;amp;gt;0 and Break20Found&amp;amp;lt;&amp;amp;gt;true and NextLow=-1 then begin&amp;lt;br&amp;gt;SellStop=TicksRound(value13[1]-TicksMTS(value13[1]));&amp;lt;br&amp;gt;SellLimit=TicksRound(value13[0]+XAverage(TrueRange,20));&amp;lt;br&amp;gt;Break20SkipCnt=0;&amp;lt;br&amp;gt;VALUE19=TL_New(date[value15+1],time[value15+1],Low[value15],date,time,Low[value15]);&amp;lt;br&amp;gt;TL_SetSize(VALUE19, 3);&amp;lt;br&amp;gt;TL_SetColor(VALUE19, Red);&amp;lt;br&amp;gt;if BreakType=0 then begin&amp;lt;br&amp;gt;BreakBars=0;&amp;lt;br&amp;gt;BreakType=-1;&amp;lt;br&amp;gt;{BreakIsLoss=false;}&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&lt;br /&gt;
&lt;br /&gt;
{ Gestione entry multiple high }&amp;lt;br&amp;gt;if NextHigh&amp;amp;lt;&amp;amp;gt;-1 and cCurrentEntries&amp;amp;lt;MaxOpenEntry and TradeAccount&amp;amp;gt;0 then begin&amp;lt;br&amp;gt;if H&amp;amp;gt;=Nexthigh then begin&amp;lt;br&amp;gt;BuyStop=NextHigh;&amp;lt;br&amp;gt;BuyLimit=NextHigh;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;if VALUE29&amp;amp;gt;=0 then&amp;lt;br&amp;gt;TL_Delete(VALUE29);&amp;lt;br&amp;gt;VALUE29=TL_New(value99,value98,NextHigh,date+1,time,NextHigh);&amp;lt;br&amp;gt;TL_SetSize(VALUE29, 3);&amp;lt;br&amp;gt;TL_SetColor(VALUE29, Cyan);&amp;lt;br&amp;gt;end;&lt;br /&gt;
&lt;br /&gt;
{ Gestione entry multiple low }&amp;lt;br&amp;gt;if NextLow&amp;amp;lt;&amp;amp;gt;-1 and cCurrentEntries&amp;amp;lt;MaxOpenEntry and TradeAccount&amp;amp;gt;0 then begin&amp;lt;br&amp;gt;if L&amp;amp;lt;=NextLow then begin&amp;lt;br&amp;gt;SellStop=NextLow;&amp;lt;br&amp;gt;SellLimit=NextLow;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;if VALUE38&amp;amp;gt;=0 then&amp;lt;br&amp;gt;TL_Delete(VALUE38);&amp;lt;br&amp;gt;value38=TL_New(value99,value98,NextLow,date+1,time,NextLow);&amp;lt;br&amp;gt;TL_SetSize(value38, 3);&amp;lt;br&amp;gt;TL_SetColor(value38, Magenta);&amp;lt;br&amp;gt;end;&lt;br /&gt;
&lt;br /&gt;
{ Verifica ultimo break in loss }&amp;lt;br&amp;gt;if BreakType&amp;amp;lt;&amp;amp;gt;0 then begin&amp;lt;br&amp;gt;if BreakBars&amp;amp;lt;=11 then begin&amp;lt;br&amp;gt;if BreakType=1 then&amp;lt;br&amp;gt;BreakIsLoss=BreakIsLoss or (BreakStop&amp;amp;lt;=Lowest(Low,BreakBars-1))&amp;lt;br&amp;gt;else&amp;lt;br&amp;gt;BreakIsLoss=BreakIsLoss or (BreakStop&amp;amp;gt;=Highest(High,BreakBars-1));&amp;lt;br&amp;gt;BreakBars=BreakBars+1;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else begin&amp;lt;br&amp;gt;BreakType=0;&amp;lt;br&amp;gt;BreakIsLoss=false;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&lt;br /&gt;
&lt;br /&gt;
if MarketPosition&amp;amp;lt;&amp;amp;gt;-1 and BuyStop&amp;amp;lt;&amp;amp;gt;-1 then begin { Genera ordini Buy }&amp;lt;br&amp;gt;TradeAccount=Account-(CurrentContracts*AvgEntryPrice)+NetProfit;&amp;lt;br&amp;gt;if TradeAccount&amp;amp;gt;2*maxlist(BuyStop,BuyLimit) then begin&amp;lt;br&amp;gt;if BarUntil=-1 then begin&amp;lt;br&amp;gt;PosSize=PositionMoneyMng(TradeAccount,MaxPercRisk,BuyLimit,2*XAverage(TrueRange,20));&amp;lt;br&amp;gt;BarUntil=BarNumber+DistH;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else begin&amp;lt;br&amp;gt;BuyStop=-1;&amp;lt;br&amp;gt;BuyLimit=-1;&amp;lt;br&amp;gt;TradeAccount=-1;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;if BarNumber&amp;amp;lt;BarUntil then&amp;lt;br&amp;gt;Buy (&amp;quot;TLE&amp;quot;) PosSize shares next bar at BuyStop stop&amp;lt;br&amp;gt;else begin&amp;lt;br&amp;gt;BuyStop=-1;&amp;lt;br&amp;gt;BuyLimit=-1;&amp;lt;br&amp;gt;BarUntil=-1;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else if MarketPosition&amp;amp;lt;&amp;amp;gt;1 and SellStop&amp;amp;lt;&amp;amp;gt;-1 then begin { Genera ordini Sell }&amp;lt;br&amp;gt;TradeAccount=Account-(CurrentContracts*AvgEntryPrice)+NetProfit;&amp;lt;br&amp;gt;if TradeAccount&amp;amp;gt;2*minlist(SellStop,SellLimit)then begin&amp;lt;br&amp;gt;if BarUntil=-1 then begin&amp;lt;br&amp;gt;PosSize=PositionMoneyMng(TradeAccount,MaxPercRisk,SellLimit,2*XAverage(TrueRange,20));&amp;lt;br&amp;gt;BarUntil=BarNumber+DistL;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else begin&amp;lt;br&amp;gt;SellStop=-1;&amp;lt;br&amp;gt;SellLimit=-1;&amp;lt;br&amp;gt;TradeAccount=-1;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;if BarNumber&amp;amp;lt;BarUntil then&amp;lt;br&amp;gt;Sell (&amp;quot;TSE&amp;quot;) PosSize shares next bar at SellStop stop&amp;lt;br&amp;gt;else begin&amp;lt;br&amp;gt;SellStop=-1;&amp;lt;br&amp;gt;SellLimit=-1;&amp;lt;br&amp;gt;BarUntil=-1;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;end;&lt;br /&gt;
&lt;br /&gt;
{ Expert Commentary Report }&amp;lt;br&amp;gt;If AtCommentaryBar then begin&amp;lt;br&amp;gt;Eq=Account-(CurrentContracts*AvgEntryPrice)+NetProfit;&amp;lt;br&amp;gt;Vars:Str(&amp;quot;&amp;quot;);&amp;lt;br&amp;gt;Str=Str+&amp;quot;*************** System inputs **************************&amp;quot;+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Starting Capital : &amp;quot;+NumToStr(Account,2)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Percentage of Equity to risk : &amp;quot;+NumToStr(MaxPercRisk,2)+&amp;quot; % &amp;quot;+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;*************** Current statistics ************************&amp;quot;+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Market position : &amp;quot;+NumToStr(MarketPosition,0)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Current Shares held : &amp;quot;+NumToStr(cCurrentContracts,0)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Current Equity : &amp;quot;+NumToStr(Eq,2)+NewLine;&amp;lt;br&amp;gt;if BuyStop&amp;amp;lt;&amp;amp;gt;-1 or SellStop&amp;amp;lt;&amp;amp;gt;-1 then&amp;lt;br&amp;gt;Str=Str+&amp;quot;Percentage of current Equity to risk : &amp;quot;+NumToStr(MaxPercRisk,2)+&amp;quot; % equals &amp;quot;+NumToStr(-Eq*MaxPercRisk/100,2)+&amp;quot; dollars &amp;quot;+NewLine;&amp;lt;br&amp;gt;If BuyStop&amp;amp;lt;&amp;amp;gt;-1 then begin&amp;lt;br&amp;gt;Str=Str+&amp;quot;Entry Long : &amp;quot;+NumToStr(BuyStop,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Exit Long : &amp;quot; +NumToStr(TicksRound(BuyStop-2*XAverage(TrueRange,20)),4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Difference between Entry Long and Exit Long in Dollars : &amp;quot;+NumToStr(TicksRound(2*XAverage(TrueRange,20)),4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Number of shares to buy to risk &amp;quot;+NumToStr(MaxPercRisk,2)+&amp;quot; % of capital : &amp;quot;+NumToStr(PosSize,0)+NewLine;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else If MarketPosition=1 then begin&amp;lt;br&amp;gt;Eq=Account+NetProfit;&amp;lt;br&amp;gt;T1=-cCurrentContracts*(cAvgEntryPrice-LExitStop);&amp;lt;br&amp;gt;Str=Str+&amp;quot;Percentage of current Equity to risk : &amp;quot;+NumToStr(AbsValue(100*T1/Eq),2)+&amp;quot; % equals &amp;quot;+NumToStr(T1,2)+&amp;quot; dollars &amp;quot;+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Entry Long : &amp;quot;+NumToStr(cEntryPrice,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Exit Long : &amp;quot; +NumToStr(LExitStop,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Difference between Entry Long and Exit Long in Dollars : &amp;quot;+NumToStr(cEntryPrice-LExitStop,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Open Position Profit in Dollars : &amp;quot;+NumToStr(OpenPositionProfit,2)+NewLine;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;If SellStop&amp;amp;lt;&amp;amp;gt;-1 then begin&amp;lt;br&amp;gt;Str=Str+&amp;quot;Entry Short : &amp;quot;+NumToStr(SellStop,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Exit Short : &amp;quot; +NumToStr(TicksRound(SellStop+2*XAverage(TrueRange,20)),4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Difference between Entry Short and Exit Short in Dollars : &amp;quot;+NumToStr(TicksRound(2*XAverage(TrueRange,20)),4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Number of shares to Sell to risk &amp;quot;+NumToStr(MaxPercRisk,2)+&amp;quot; % of capital : &amp;quot;+NumToStr(PosSize,0)+NewLine;&amp;lt;br&amp;gt;end&amp;lt;br&amp;gt;else If MarketPosition=-1 then begin&amp;lt;br&amp;gt;Eq=Account+NetProfit;&amp;lt;br&amp;gt;T1=-cCurrentContracts*(SExitStop-cAvgEntryPrice);&amp;lt;br&amp;gt;Str=Str+&amp;quot;Percentage of current Equity to risk : &amp;quot;+NumToStr(AbsValue(100*T1/Eq),2)+&amp;quot; % equals &amp;quot;+NumToStr(T1,2)+&amp;quot; dollars &amp;quot;+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Entry Short : &amp;quot;+NumToStr(cEntryPrice,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Exit Short : &amp;quot; +NumToStr(SExitStop,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Difference between Entry Short and Exit Short in Dollars : &amp;quot;+NumToStr(SExitStop-cEntryPrice,4)+NewLine;&amp;lt;br&amp;gt;Str=Str+&amp;quot;Open Position Profit in Dollars : &amp;quot;+NumToStr(OpenPositionProfit,2)+NewLine;&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;Commentary(Str);&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;FINE FORMULA&lt;br /&gt;
&lt;br /&gt;
== Vedi anche:  ==&lt;br /&gt;
&lt;br /&gt;
*[[Indice sequenziale Formule|Indice sequenziale Formule]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Formule]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Stefano Fanton</name></author>
	</entry>
</feed>