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

Re: EasyLanguage to Metastock conversion



PureBytes Links

Trading Reference Links

Corey,
Very nice!  I heard they're now calling you "The Wiz" :)
Thx,
Jeff


C.S. wrote:
>Jeff,
>    I worked on this for a time last July. Incorporating Dave's
>improvements, I came up with the following for Ehlers code for the modified
>optimum elliptic filter and detrender as described on p.29. Although I'm not
>impressed with the output, this may be something you can use.
>
>{Ehlers TASC Jul 00, p. 29}
>P1:=(H+L)/2;
>V1:=P1 + 0.088*Ref(PREV,-5);
>V2:=ROC(V1,6,$) + 1.2*Ref(PREV,-5) - 0.7*Ref(PREV,-11);
>D1:=Ref(V2,-12) - (2*Ref(V2,-6))+V2;
>
>S1:=0.13785*(2*D1-Ref(D1,-1))+0.0007*(2*Ref(D1,-1)-Ref(D1,-2))+0.13785*(2*Re
>f(D1,-2)-Ref(D1,-3))+(1.2103*PREV)-(0.4867*Ref(PREV,-1));
>
>S2:=0.13785*(2*S1-Ref(S1,-1))+0.0007*(2*Ref(S1,-1)-Ref(S1,-2))+0.13785*(2*Re
>f(S1,-2)-Ref(S1,-3))+1.2103*PREV-0.4867*Ref(PREV,-1);
>S1;
>S2
>
>-Corey.
>
>----- Original Message -----
>From: "Jeff Haferman" <haferman@xxxxxxxxxxxxxxxxxxxxxxx>
>To: <metastock@xxxxxxxxxxxxx>
>Sent: Wednesday, March 07, 2001 7:20 AM
>Subject: Re: EasyLanguage to Metastock conversion
>
>
>>
>> Dave,
>> Thanks, I tried your code in MS 6.52, and it plots, but
>> does not seem correct.  The original EasyLanguage code is:
>>
>>  Value1 = Close + 0.088*Value1[6];
>>  Value2 = Value1 - Value1[6] + 1.2*Value2[6] - 0.7*Value2[12];
>>  D = Value2[12] - 2*Value2[6] + Value2;
>>  Plot1(D,"D");
>>
>> So I modified yours to read
>>   Value1:=0.088*Ref(PREV,-6)+CLOSE;
>>   Value2:=(1.2*Ref(PREV,-6))-(0.7*Ref(PREV,-12));
>>   V3:=ROC(Value1,6,$)+Value2;
>>   D:=Ref(V3,-12)-2*Ref(V3,-6)+V3;
>>   D;
>>
>> This seems like it's correct, and it does plot, but I don't
>> have any EasyLanguage numbers to compare to.  I wrote up
>> a C program to perform the computation, and the shape of
>> the resulting plot seems identical to what metastock gives,
>> but the actual numbers are off.  Your line of thinking
>> seems to me to be correct, however.  I'll try to do
>> some more verfication.
>>
>> Jeff
>>
>>
>> Dave Nadeau wrote:
>> >Try this one out:
>> >
>> >Value1:=0.88*Ref(PREV,-6)+Close;
>> >Value2:=(1.2*Ref(PREV,-6))-(0.7*Ref(PREV,-12));
>> >ROC(Value1,6,$)+Value2
>> >
>> >--------------------------------------
>> >I can get away with the last statement because
>> >ROC(Value1,6,$)=Value1-Ref(Value1,-6)
>> >
>> >The above plots on Metastock Pro 7.03.
>> >
>> >Dave Nadeau
>> >Fort Collins, CO
>> >
>> >3/5/2001 3:19:56 PM, "Brooke" <brookelise@xxxxxxxx> wrote:
>> >
>> >>Corey:
>> >>
>> >>I don't think that'll do the job, because the formulas are
>self-referential,
>> >>or recursive. Did you get values with it? If so, you're working with a
>later
>> >>version of Metastock than I am.
>> >>
>> >>I would have thought that you'd need to use PREV. I don't get anything
>with
>> >>this in Metastock, for example:
>> >>
>> >>Value1:=Ref(Value1,-1) + C;
>> >>Value1;
>> >>
>> >>What that formula would be trying to say is:
>> >>
>> >>Value1:=PREV +C;
>> >>Value1;
>> >>
>> >>The first line in the formula would be this, I think:
>> >>
>> >>Value1:=0.088*ref(PREV,-6) +C;
>> >>
>> >>But the Easy Language formula requires two PREV's in this line:
>> >>
>> >>Value2 = Value1 - Value1[6] + 1.2*Value2[6] - 0.7*Value2[12];
>> >>
>> >>It might be translated as:
>> >>
>> >>Value2:= 1.2*ref(PREV,-6) - 0.7*ref(PREV,-12) + Value1 - ref(Value1,-6)
>;
>> >>
>> >>Except that
>> >>
>> >>a) PREV now refers back to the other PREV in the line, I think, and
>> >>
>> >>b) I get an "Add Overflow" message with that formula.
>> >>
>> >>So it would have to be broken down in some way so that there was only
>one
>> >>PREV in the line.
>> >>
>> >>Something like this, though this still won't do it. I'd have to have an
>> >>EasyLanguage program to compare values.
>> >>
>> >>Value1:=0.088*ref(PREV,-6) +C;
>> >>Value2a:= 1.2*ref(PREV,-6)+ (Value1 - ref(Value1,-6)) ;
>> >>Value2b:= 0.7*ref(PREV,-12)+(Value1 - ref(Value1,-6)) ;
>> >>Value2:=Value2a +Value2b;
>> >>
>> >>But who knows? Maybe I'm wrong, and newer versions of Metastock can do
>> >>recursive formulas without PREV.
>> >>
>> >>----- Original Message -----
>> >>From: "C.S." <csaxe@xxxxxxxxxxx>
>> >>To: <metastock@xxxxxxxxxxxxx>
>> >>Sent: Monday, March 05, 2001 4:55 PM
>> >>Subject: Re: EasyLanguage to Metastock conversion
>> >>
>> >>
>> >>> OK,
>> >>>     I'll take a stab at this. Please chime in if I'm wrong, as I can
>learn
>> >>> from this too.
>> >>>
>> >>> Value1:=C + 0.088 * Ref(Value1,-6);
>> >>> Value2:=Value1 - Ref(Value1,-6) + 1.2*Ref(Value2,-6) -
>> >>0.7*Ref(Value2,-12);
>> >>> Ref(Value2,-12) - 2*Ref(Value2,-6) + Value2
>> >>>
>> >>> Although the PREV function could have been used, I didn't because it
>tends
>> >>> to slow computation.
>> >>> -Corey
>> >>>
>> >>> ----- Original Message -----
>> >>> From: "Jeff Haferman" <haferman@xxxxxxxxxxxxxxxxxxxxxxx>
>> >>> To: <metastock@xxxxxxxxxxxxx>
>> >>> Sent: Sunday, March 04, 2001 5:03 PM
>> >>> Subject: EasyLanguage to Metastock conversion
>> >>>
>> >>>
>> >>> >
>> >>> > I've got some code I'm trying to convert to Metastock...
>> >>> > it's written in EasyLanguage.
>> >>> >
>> >>> > I've got:
>> >>> >
>> >>> > Value1 = Close + 0.088*Value1[6];
>> >>> > Value2 = Value1 - Value1[6] + 1.2*Value2[6] - 0.7*Value2[12];
>> >>> > D = Value2[12] - 2*Value2[6] + Value2;
>> >>> > Plot1(D,"D");
>> >>> >
>> >>> > Is there an easy way to write this as a Metastock indicator?
>> >>> > For example, Value1[6] means the value of Value1 6 bars ago.
>> >>> > But Value1 is defined recursively, so I'm not sure
>> >>> > how this can be done in Metastock.
>> >>> >
>> >>> >
>>
>