SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Strategies & Market Trends : Metastock 6.0 for Window -- Ignore unavailable to you. Want to Upgrade?


To: Vic who wrote (1981)4/24/1998 5:11:00 PM
From: Chris  Respond to of 4056
 
anybody got it working for metastock 6.0 as well? <g>
im stumped.



To: Vic who wrote (1981)4/24/1998 7:05:00 PM
From: Craig DeHaan  Read Replies (1) | Respond to of 4056
 
Vic,
Make sure you're setting all variable calls as

S1:= If .......... (and end each with a semicolon per convention) ";"
S2:= If .......... ;
etc.

As for 6.0 compatibility, I believe it supported the PREVIOUS function as does 6.5. If not, or should you care to try a speed-tweaked version posted by Tim Kruzel on the Metastock list earlier this month try this out:

==============================
Date: Sun, 12 Apr 1998 00:37:00 -0500
From: TKruzel <TKruzel@centuryinter.net>
To: Metastock-Users-List <metastock-list@metastock.com>

For those of you trying to use Mr. Widner's formulas, I
Think you will find the following to be equivalent and
they avoid the use of PREVIOUS (a computational pig).

In the MetaStock Indicator Builder create an indicator
called:

Enter_Long_SR (or whatever you want to call it)

Copy the following into the indicator:

{*********************************************}

S1:=ValueWhen(1,Ref(LOW,-4)=LLV(LOW,9),Ref(LOW,-4));

S2:=ValueWhen(1,S1<>Ref(S1,-1),Ref(S1,-1));

S3:=ValueWhen(1,S1<>Ref(S1,-1),Ref(S2,-1));

S4:=ValueWhen(1,S1<>Ref(S1,-1),Ref(S3,-1));

S5:=ValueWhen(1,S1<>Ref(S1,-1),Ref(S4,-1));

S6:=ValueWhen(1,S1<>Ref(S1,-1),Ref(S5,-1));

WSO:=100*(1-(Int(S1/CLOSE)+Int(S2/CLOSE)+
Int(S3/CLOSE)+Int(S4/CLOSE)+
Int(S5/CLOSE)+Int(S6/CLOSE))/6);

{*********************************************}

R1:=ValueWhen(1,Ref(HIGH,-4)=HHV(HIGH,9), Ref(HIGH,-4));

R2:=ValueWhen(1,R1<>Ref(R1,-1),Ref(R1,-1));

R3:=ValueWhen(1,R1<>Ref(R1,-1),Ref(R2,-1));

R4:=ValueWhen(1,R1<>Ref(R1,-1),Ref(R3,-1));

R5:=ValueWhen(1,R1<>Ref(R1,-1),Ref(R4,-1));

R6:=ValueWhen(1,R1<>Ref(R1,-1),Ref(R5,-1));

WRO:=100*(1-(Int(R1/CLOSE)+Int(R2/CLOSE)+
Int(R3/CLOSE)+Int(R4/CLOSE)+
Int(R5/CLOSE)+Int(R6/CLOSE))/6);

{*********************************************}

EnterLong:=If(((WSO > Mov(WSO,4,S)) OR (Mov(WRO,30,S) > 95)),1,0);

{*********************************************}

Then go to the MetaStock System Tester and create a test called:

SR_Long (or whatever you want to call it)

The enter long criteria is simply:

Fml("Enter_Long_SR")

Set your STOPS as indicated and you should have it.

Regards,
Tim
==============================

I haven't set it up yet, but it looks to be properly coded.

Good luck,
Craig



To: Vic who wrote (1981)4/24/1998 8:02:00 PM
From: Craig DeHaan  Respond to of 4056
 
Sorry about an omission at the end of the indicator formula.

After

{*********************************************}

EnterLong:=If(((WSO > Mov(WSO,4,S)) OR
(Mov(WRO,30,S) > 95)),1,0);

{*********************************************}
{add}

EnterLong;

{*********************************************}

This will result in a "one-spike" at any buy conditions when viewing the indicator itself or a buy signal in the system test.



To: Vic who wrote (1981)4/24/1998 9:07:00 PM
From: TechTrader42  Read Replies (3) | Respond to of 4056
 
You'll have to create custom indicators in Indicator Builder for each
of the formulas in your note, including those listed below.
Theoretically, you could put them all in one long indicator in MSWIN
6.5 (by adding semicolons at the end of each one), but in this case
PREVIOUS uses so much memory that you'll get an error message if you
try it. So first you need to create a custom indicator called S1 and
put in the formula, then S2, etc. Finally, you create one called WSO.
You might get an error message when you create S2, too, because MSWIN
6.5 claims there already is a formula with that name (though I can't
find it). So just change it to "S2a" or "S2x," and remember to change
all references to it in the following formulas -- for example,
PREVIOUS,Ref(Fml("S2a"),-1)).

The last formula -- Enter Long: Fml("WSO") > Mov( Fml("WSO") , 4 , S )
OR Mov( Fml("WRO") , 30 , S )> 95 -- goes under System Tester, not
the Indicator Builder. But plot all the indicators first. Here they
are:

S1: IF(Ref(LOW,-4)=LLV(LOW,9),Ref(LOW,-4),PREVIOUS)
S2: IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S1"),-1))
S3: IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S2"),-1))
S4: IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S3"),-1))
S5: IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S4"),-1))
S6: IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S5"),-1))

WSO:
100*(1-(Int(Fml("S1")/CLOSE)+Int(Fml("S2")/CLOSE)+Int(Fml("S3")/CLOSE)+Int(Fml("S4")/CLOSE)
+Int(Fml("S5")/CLOSE)+Int(Fml("S6")/CLOSE))/6)

R1: IF(Ref(HIGH,-4)=HHV(HIGH,9),Ref(HIGH,-4),PREVIOUS)
R2: IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R1"),-1))
R3: IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R2"),-1))
R4: IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R3"),-1))
R5: IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R4"),-1))
R6: IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R5"),-1))

WRO: 100*(1-(Int(Fml("R1")/CLOSE)+Int(Fml("R2")/CLOSE)
+Int(Fml("R3")/CLOSE)+Int(Fml("R4")/CLOSE)
+Int(Fml("R5")/CLOSE)+Int(Fml("R6")/CLOSE))/6)



To: Vic who wrote (1981)4/29/1998 6:54:00 PM
From: Guitarman  Read Replies (2) | Respond to of 4056
 
It will work as is. You type in all the formulas and do what the author has said, "The indicators S1 through S6 and R1 through R6 should be plotted as points and not as a continuous line.

Here they are condensed specifically for version 6.5:

WRO

R1:=If(Ref(HIGH,-4)=HHV(HIGH,9),Ref(HIGH,-4),PREVIOUS);
R2:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R1,-1));
R3:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R2,-1));
R4:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R3,-1));
R5:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R4,-1));
R6:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R5,-1));

WRO:=100*(1-(Int(R1/CLOSE)+Int(R2/CLOSE)+Int(R3/CLOSE)+Int(R4/CLOSE)+Int(R5/CLOSE)+Int(R6/CLOSE))/6);
WRO
=============================================
WRO: R1 - R6
R1:=If(Ref(HIGH,-4)=HHV(HIGH,9),Ref(HIGH,-4),PREVIOUS);
R2:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R1,-1));
R3:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R2,-1));
R4:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R3,-1));
R5:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R4,-1));
R6:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R5,-1));

R1;R2;R3;R4;R5;R6
===============================================

WSO
S1:=If(Ref(LOW,-4)=LLV(LOW,9),Ref(LOW,-4),PREVIOUS);
S2:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S1,-1));
S3:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S2,-1));
S4:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S3,-1));
S5:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S4,-1));
S6:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S5,-1));

WSO:=100*(1-(Int(S1/CLOSE)+Int(S2/CLOSE)+Int(S3/CLOSE)+Int(S4/CLOSE)+Int(S5/CLOSE)
+Int(S6/CLOSE)) /6);
WSO
==========================================================
WSO: S1-S6
S1:=If(Ref(LOW,-4)=LLV(LOW,9),Ref(LOW,-4),PREVIOUS);
S2:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S1,-1));
S3:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S2,-1));
S4:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S3,-1));
S5:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S4,-1));
S6:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S5,-1));

S1;S2;S3;S4;S5;S6