[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Problem: AB seems to have two! different SellPricevalues (Bug?)



PureBytes Links

Trading Reference Links

Hello Tomasz,

thanks for your answer, I've put the "SetBarsRequired" line on top of my 
formula; but unfortunately it didn't change anything :-/  Even if this 
were the reason, I couldn't understand why the two shown values of the 
same array are different (represented with "Plot" and "WriteVal" 
respectively). That's what makes me a bit confused :-?

Thanks for your help,
Andreas Pfrengle

> Hello,
> 
> It is good to read User's Guide sometimes.
> 
> You are using looping and the answer to your problem is
> SetBarsRequired(100000, 100000 );
> See
> http://www.amibroker.com/f?setbarsrequired
> 
> 
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "lacour_defanel" <pfrengle@xxxxxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Saturday, July 30, 2005 6:47 PM
> Subject: [amibroker] Problem: AB seems to have two! different SellPrice 
> values (Bug?)
> 
> 
>  > Hello,
>  >
>  > I have experienced a strange behavior of my trading system. If I plot
>  > the SellPrice-array in an indicator-window and display the SAME
>  > arrayvalue in the Guru-Commentary, the values are sometimes different.
>  > It seems that the values the indicator shows are correct (I calculated
>  > it manually), but the system trades at the values of the Guru. This
>  > inconsistency seems like a bug to me.
>  > Last week I could just copy the code and save it in a new file and it
>  > worked again, both values were the same. Today the problem occured
>  > again, but doesn't react that friendly. :-(
>  > I hope someone can help me with this problem, cause it'll soon drive
>  > me mad if it won't work reliably.
>  >
>  > I attach two versions of the system, the first one seems to work (a
>  > simplified version and rebuild from scratch). The second doesn't show
>  > consistent Sell oder CoverPrice values. It is reduced from my actual
>  > system to the essential.
>  >
>  > Regards,
>  > Andreas Pfrengle
>  >
>  > ---------------------------------------
>  >
>  > Simplified System:
>  > //Initialize
>  > SetTradeDelays(0,0,0,0);
>  > Buy = 0;
>  > BuyPrice = O;
>  > Sell = 0;
>  >
>  > inmarket = 0;
>  > range = 14;
>  > StopPriceArray = 0;
>  > StopPriceNew = 0;
>  > AvgTR = ATR(range);
>  >
>  > //Trading Loop
>  > for (i = range; i < BarCount; i++)
>  > {
>  > if (inmarket == 0) Buy[i] = 1;
>  > if (Buy[i] == 1)
>  > {
>  > inmarket = 1;
>  > StopPrice = C[i] - 2 * AvgTR[i];
>  > }
>  > StopPriceNew[i] = C[i-1] - 2 * AvgTR[i-1];
>  > if (Buy[i] != 1) StopPrice = Max(StopPrice, StopPriceNew[i]);
>  > StopPriceArray[i] = StopPrice;
>  > SellPrice[i] = Min(StopPrice, O[i]);
>  > if (inmarket == 1) Sell[i] = (L[i] <= StopPrice);
>  > if (Sell[i] == 1) inmarket = 0;
>  >
>  > }
>  > PositionSize = -10;
>  >
>  > //Debug
>  > "AvgTR: " + WriteVal(AvgTR, 1.3);
>  > " ";
>  > "StopPrice: " + WriteVal(StopPriceArray, 1.2);
>  > "SellPrice: " + WriteVal(SellPrice, 1.2);
>  >
>  > Plot(StopPriceArray, "Stop", colorBlack, styleDots);
>  > Plot(SellPrice, "SellPrice", colorGrey50, styleDots);
>  > Plot(AvgTR, "AvgTR", colorGold, styleDots|styleOwnScale);
>  > Plot(Buy, "Buy", colorTeal, styleOwnScale);
>  > Plot(Sell, "Sell", colorDarkTeal, styleOwnScale|st
>  > yleDots|styleNoLine);
>  >
>  >
>  > -------------------------------------------
>  >
>  > System with odd behavior:
>  >
>  > //Parameters
>  > nATR = Param("Stop ATR amount", 2, 0.5, 3, 0.5);
>  > k0 = Param("Adverse Trailing for Stop", 20, 20, 60, 5);
>  > RSLtrigger = Param("Min RSL-Value", 1, 1, 1.251, 0.05);
>  > Slip = Param("Slippage in Percent per Trade", 0, 0, 2, 0.1);
>  > range = Param("Time Range", 14, 7, 21, 1);
>  > EMAHHVsc = 0.2;  //Smoothing Constant for EMA HHV Since Buy
>  > EMALLVsc = 0.2;  //Smoothing Constant for EMA LLV Since Short
>  >
>  >
>  > //Initialize
>  > SetTradeDelays(1,0,1,0);
>  > Buy = 0;
>  > BuyPrice = O;
>  > Sell = 0;
>  > Short = 0;
>  > CoverPrice = O;
>  > Cover = 0;
>  > EMAROC = EMA(ROC(C, 1)/100, 3);
>  > EMAHHV[0] = C[0];
>  > EMALLV[0] = C[0];
>  > inmarket = 0;
>  > inmarketshort = 0;
>  > StopPrice = 0;
>  > StopPriceNew = 0;
>  > StopPriceArray = 0;
>  > StopPriceShort = 0;
>  > StopPriceShortNew = 0;
>  > StopPriceShortArray = 0;
>  > AvgTR = ATR(range);
>  >
>  > //Trading Loop
>  > for (i = range; i < BarCount; i++)
>  > {
>  > // Long-Section
>  > Buyrule[i] = 1;
>  > if (inmarket == 0 AND inmarketshort == 0) Buy[i] = Buyrule[i];
>  > if (Buy[i] == 1)
>  > {
>  > inmarket = 1;
>  > StopPrice = C[i] - nATR * AvgTR[i];
>  > }
>  > if (Buy[i] == 1) EMAHHV[i] = C[i];
>  > else EMAHHV[i] = (1-EMAHHVsc) * EMAHHV[i-1]  +  EMAHHVsc * H[i];
>  > StopPriceNew[i] = EMAHHV[i-1] - (k0*EMAROC[i-1] + nATR) * AvgTR[i-1];
>  > if (Buy[i] != 1) StopPrice = Max(StopPrice, StopPriceNew[i]);
>  > //Trailing Stop
>  > StopPriceArray[i] = StopPrice;
>  > SellPrice[i] = (1 - Slip/100) * Min(StopPrice, O[i]); //Sell at Stop
>  > (or Open if lower) minus Slippage
>  > Sellrule[i] = L[i] <= StopPrice;
>  > if (inmarket == 1) Sell[i] = Sellrule[i];
>  > if (Sell[i] == 1 AND Buy[i] == 1) Sell[i] = 0; //Avoid Sell on same
>  > day as Buy because of TradeDelay (1 day)
>  > if (Sell[i] == 1) inmarket = 0;
>  >
>  > // Short-Section
>  > Shortrule[i] = 1;
>  > if (inmarket == 0 AND inmarketshort == 0) Short[i] = Shortrule[i];
>  > if (Short[i] == 1)
>  > {
>  > inmarketshort = 1;
>  > StopPriceShort = C[i] + nATR * AvgTR[i];
>  > }
>  > if (Short[i] == 1) EMALLV[i] = C[i];
>  > else EMALLV[i] = (1-EMALLVsc) * EMALLV[i-1]  +  EMALLVsc * L[i];
>  > StopPriceShortNew[i] = EMALLV[i-1] + (-k0*EMAROC[i-1] + nATR) *
>  > AvgTR[i-1];
>  > if (Short[i] != 1) StopPriceShort = Min(StopPriceShort,
>  > StopPriceShortNew[i]); //Trailing Stop
>  > StopPriceShortArray[i] = StopPriceShort;
>  > CoverPrice[i] = (1 + Slip/100) * Max(StopPriceShort, O[i]); //Coverat
>  > Stop (or Open if higher) minus Slippage
>  > Coverrule[i] = H[i] >= StopPriceShort;
>  > if (inmarketshort == 1) Cover[i] = Coverrule[i];
>  > if (Cover[i] == 1 AND Short[i] == 1) Cover[i] = 0; //Avoid Cover on
>  > same day as Short because of TradeDelay (1 day)
>  > if (Cover[i] == 1) inmarketshort = 0;
>  >
>  > }
>  >
>  > WriteVal(EMAHHV, 1.3) + "    : EMAHHV";
>  > WriteVal(AvgTR, 1.3) + "    : AvgTR";
>  > " ";
>  > "Open: " + WriteVal(O, 1.3);
>  > "StopPrice: " + WriteVal(StopPriceArray, 1.2);
>  > "SellPrice: " + WriteVal(SellPrice, 1.2);
>  > " ";
>  > "StopShort: " + WriteVal(StopPriceShortArray, 1.2);
>  > "CoverPrice: " + WriteVal(CoverPrice, 1.2);
>  >
>  >
>  > Plot(SellPrice, "SellPrice", colorBlack, styleDots);
>  > Plot(CoverPrice, "CoverPrice", colorGrey50, styleDots);
>  > Plot(Buy, "Buy", colorTeal, styleOwnScale);
>  > Plot(Sell, "Sell", colorDarkTeal, styleOwnScale|st
>  > yleDots|styleNoLine);


------------------------ Yahoo! Groups Sponsor --------------------~--> 
<font face=arial size=-1><a href="http://us.ard.yahoo.com/SIG=12hqr19sm/M=362343.6886682.7839641.1493532/D=groups/S=1705632198:TM/Y=YAHOO/EXP=1123013250/A=2894352/R=0/SIG=11fdoufgv/*http://www.globalgiving.com/cb/cidi/tsun.html";>Help tsunami villages rebuild at GlobalGiving. The real work starts now</a>.</font>
--------------------------------------------------------------------~-> 

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For other support material please check also:
http://www.amibroker.com/support.html

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/