PureBytes Links
Trading Reference Links
|
That's true.
break statement is required, otherwise execution continues
http://www.amibroker.com/guide/keyword/switch.html
Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message -----
From: "Mike" <sfclimbers@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Saturday, March 15, 2008 10:46 AM
Subject: [amibroker] Re: Optimisation Problems
>I don't have the user guide in front of me. But I would guess that
> you need to add a "break;" statement to end of each "case" body.
> Without a break statement, code continues to execute each following
> case body such that all scenarios will end with the settings set
> in "case 3".
>
> Mike
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Graham Johnson" <grahamj@xxx>
> wrote:
>>
>> Been bashing my head against the proverbial brick wall for a couple
>> of days now.
>>
>> I'm trying to test 3 different exit strategies using the Optiniser.
>>
>> The Optimiser runs 3 times but gives the same number of trades and
>> the same profit - should not be possible, so I am obviously missing
>> something in the logic.
>>
>> Testing against ASX300 for 2000 - 2007.
>>
>> See relevant code below. Any help please.
>>
>> Graham
>>
>> vaIsValidSignal = BuyLongTrig == True
>> AND PriceGate == True
>> AND MFGate == True;
>> vaBgColour = IIf(vaIsValidSignal == 0, BkGndColor, colorOrange);
>>
>> //vEntry = 3;
>> vEntry = Optimize("Entry Strategy", 1,1, 3, 1);
>> vTime = 1;
>> //vTime = Optimize("Time Exit Strategy", 1,1, 2, 1);
>>
>> switch(vEntry) // Entry Strategies
>> {
>> case 1: //Stop entry next bar at signal bar High
>> vaEntryPrice = Ref(High, -1);
>> Buy = Ref(vaIsValidSignal,-1) AND High >=
>> vaEntryPrice;
>> BuyPrice = Max(Open, vaEntryPrice);
>> case 2: //Stop entry next bar at signal bar Close
>> vaEntryPrice = Ref(Close, -1);
>> Buy = Ref(vaIsValidSignal,-1) AND High >=
>> vaEntryPrice;
>> BuyPrice = Max(Open, vaEntryPrice);
>> case 3: //Enter at next bar Open
>> vaEntryPrice = Open;
>> Buy = Ref(vaIsValidSignal,-1);
>> BuyPrice = Open;
>> }
>>
>> Sell = 0;
>>
>> vaTrailStop = Null;
>> vaSellStop = 0;
>> vaSellTarget = 0;
>> vATRMult = 0;
>> //vATRMult = Optimize("ATR Multiplier", 0, 0, 2, 0.2);
>> vATRPer = 5;
>> //vATRPer = Optimize("ATR Period", 5, 5, 20, 5);
>> VEntryBar = 0;
>> vTempStop = 0;
>> vaInitStop = EMA(Open, MAPd) - (vAtrMult * ATR(vATRPer));
>> vTimeStop = 5;
>> //vTimeStop = Optimize("Time Stop", 7, 5, 10, 1);
>> vTrigger = 0;
>>
>> for(vCnt = 1; vCnt < BarCount; vCnt++)
>> {
>> if(vTempStop == 0
>> AND Buy[vCnt] == 1) // Entry Bar & 0 positions
>> open
>> {
>> // Position Opened
>> vTempStop = vaInitStop[vCnt - 1];
>> vEntryBar = vCnt;
>> }
>> else
>> {
>> Buy[vCnt] = 0; // Remove excess Buy signals
>> } // Not Entry Bar
>>
>> if(vTempStop > 0)
>> {
>> if ((vCnt - vEntryBar) - 1 == vTimeStop) //
>> need -1 so that stop is adjusted the bar after vTimeStop is reached
>> { // test # Bars Open
>> switch(vTime) // BreakEven/Exit Strategies
>> {
>> case 1: // Move stop to entry price
>> vTempStop = Max
>> (vTempStop, BuyPrice[vEntryBar]);
>> case 2: // Move stop to entry price
>> if Close > entry price
>> if (Close[vCnt] >
>> BuyPrice[vEntryBar])
>> {
>> vTempStop =
>> Max(vTempStop, BuyPrice[vEntryBar]);
>> }
>> }
>> } // Position Open & not Entry Bar
>>
>> vTempStop = Max(vaInitStop[vCnt - 1], vTempStop);
>> vaTrailStop[vCnt - 1] = Max(vaTrailStop[vCnt - 1],
>> vTempStop);
>> if(Low[vCnt] <= vaTrailStop[vCnt - 1])
>> {
>> Sell[vCnt] = 1;
>> SellPrice[vCnt] = Min(Open[vCnt], vaTrailStop
>> [vCnt - 1]);
>> vTempStop = 0;
>> }
>> //_TRACE("Bar " + BarIndex() + " Buy " + Buy + " Sell " + Sell + "
>> Target " + vaTargetVal + " Stop " + vTempStop);
>> } // Position Open
>> } // for
>>
>
>
>
> ------------------------------------
>
> 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 NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
>
> For other support material please check also:
> http://www.amibroker.com/support.html
> Yahoo! Groups Links
>
>
>
------------------------------------
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 NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
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/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> 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/
|