Chaos Fractal

Questions about MultiCharts .NET and user contributed studies.
Abhi
Posts: 38
Joined: 28 Nov 2015
Has thanked: 6 times
Been thanked: 5 times

Chaos Fractal

Postby Abhi » 31 Mar 2018

Hi, The chaos fractal in Multicharts.NET paints the dots as shown below. please open the image in a new window or tab.

Image

I have worked quite a bit on easlylanguage. The easylanguage chart looks as below

Image

The easylanguage version of the indicator UI looks much more clean and crisp. Is it possible to make the same change in the .NET version. I have never worked on the multicharts .NET code and hence will be a steep learning curve for me :)

darob
Posts: 207
Joined: 20 Nov 2014
Has thanked: 57 times
Been thanked: 32 times

Re: Chaos Fractal

Postby darob » 01 Apr 2018

Hi Abhi, if you go to the Format Indicator panel and change the style property from "Point" to "Line" it looks like your second example.
Attachments
Screen Shot 2018-04-01 at 2.02.40 PM.png
(11.17 KiB) Downloaded 798 times

Abhi
Posts: 38
Joined: 28 Nov 2015
Has thanked: 6 times
Been thanked: 5 times

Re: Chaos Fractal

Postby Abhi » 02 Apr 2018

Thanks Darob, I had tried the line option before but wasn't very happy with the UI. It is not clean. Does not draw square lines like my easy language code.

Hi Multicharts, any help here. :) I have posted my easylanguage code below, you may use my code. win-win situation :)

Easy Language code ---

Inputs:

LeftStrength( 2) ,
RightStrength( 2);

Variables:
TLHigh(-1),
TLLow(-1),
TLHigh1(-1),
TLLow1(-1),
TLVerticalForHigh(-1),
TLVerticalForLow(-1),
TLPastHighStartDate(-1),
TLPastLowStartDate(-1),
TLPastHighStartTime(-1),
TLPastLowStartTime(-1),
TLPastHighValue(-1),
TLPastLowValue(-1),
InstrumentName("Instrument"),
StringPrecision(5),
FractalHigh(-1),
FractalLow(-1),
FractalDifference(-1),
FractalText(Text_New( 20180214, Time, GetAppInfo(aiHighestDispValue), "FracText" )),
JPYMultiplyingFactor(1);

InstrumentName = Getsymbolname ;

If (RightStr(InstrumentName, 3) = "JPY") Then
Begin
StringPrecision = 3;
JPYMultiplyingFactor = 100;

End;

If (Category = 2 ) Then //stocks
Begin
StringPrecision = 2;
JPYMultiplyingFactor = 1;

End;




if PivotHighVSBar( 1, High, LeftStrength, RightStrength, RightStrength + 1 ) <> -1
then
begin
FractalHigh = High[RightStrength];
TLHigh = TL_New( Date[RightStrength], Time[RightStrength], High[RightStrength], Date[RightStrength - RightStrength], Time[RightStrength - RightStrength], High[RightStrength] ) ;
TL_SetSize( TLHigh, 1) ;
TL_SetColor( TLHigh, RGB(0,64,128)) ;

TLPastHighStartDate = TL_GetEndDate(TLHigh);
TLPastHighStartTime = TL_GetEndTime(TLHigh);
TLPastHighValue = TL_GetEndVal(TLHigh);

If TLPastHighStartDate[1] <> -1 then
Begin
TLHigh1 = TL_New( TLPastHighStartDate[1], TLPastHighStartTime[1], High[RightStrength], Date[RightStrength], Time[RightStrength], High[RightStrength] ) ;
TL_SetSize( TLHigh1, 1) ;
TL_SetColor( TLHigh1, RGB(0,64,128)) ;

TLVerticalForHigh = TL_New( TL_GetBeginDate(TLHigh1), TL_GetBeginTime(TLHigh1), TL_GetBeginVal(TLHigh1), TLPastHighStartDate[1], TLPastHighStartTime[1], TLPastHighValue[1] ) ;
TL_SetSize( TLVerticalForHigh, 1) ;
TL_SetColor( TLVerticalForHigh, RGB(0,64,128)) ;

end;

end
else
NoPlot( 1 ) ;



if PivotLowVSBar( 1, Low, LeftStrength, RightStrength, RightStrength + 1 ) <> -1
then
begin
FractalLow = Low[RightStrength];
TLLow = TL_New( Date[RightStrength], Time[RightStrength], Low[RightStrength], Date[RightStrength - RightStrength], Time[RightStrength - RightStrength], Low[RightStrength] ) ;
TL_SetExtLeft( TLLow, false ) ;
TL_SetExtRight( TLLow,false ) ;
TL_SetSize( TLLow, 1) ;
TL_SetColor( TLLow, RGB(166,129,0)) ;

TLPastLowStartDate = TL_GetEndDate(TLLow);
TLPastLowStartTime = TL_GetEndTime(TLLow);
TLPastLowValue = TL_GetEndVal(TLLow);



If TLPastLowStartDate[1] <> -1 then
Begin
TLLow1 = TL_New( TLPastLowStartDate[1], TLPastLowStartTime[1], Low[RightStrength], Date[RightStrength], Time[RightStrength], Low[RightStrength] ) ;
TL_SetSize( TLLow1, 1) ;
TL_SetColor( TLLow1, RGB(166,129,0)) ;



TLVerticalForLow = TL_New( TL_GetBeginDate(TLLow1), TL_GetBeginTime(TLLow1), TL_GetBeginVal(TLLow1), TLPastLowStartDate[1], TLPastLowStartTime[1], TLPastLowValue[1] ) ;
TL_SetSize( TLVerticalForLow, 1) ;
TL_SetColor( TLVerticalForLow, RGB(166,129,0)) ;

end;

end
else
NoPlot( 1 ) ;


FractalDifference = (FractalHigh - FractalLow) / (MinMove / PriceScale) * 0.1;

If LastBarOnChart Then
Begin
//Text_SetLocation( FractalText,date, time, GetAppInfo(aiHighestDispValue) ) ;
//Text_SetLocation_DT( FractalText,(GetAppInfo(aiLeftDispDateTime) +GetAppInfo(aiRightDispDateTime))/2, GetAppInfo(aiHighestDispValue) ) ;
Text_SetLocation_DT( FractalText,GetAppInfo(aiLeftDispDateTime), GetAppInfo(aiHighestDispValue) ) ;
Text_SetString(FractalText, "High:" + NumToStr(FractalHigh, StringPrecision)+ ",Low:" + NumToStr(FractalLow, StringPrecision)+ ",PIPLoss:" + NumToStr(FractalDifference, 1 )
+ ",DollarLoss:" + NumToStr(FractalDifference * JPYMultiplyingFactor, 1));
Text_SetColor(FractalText, Yellow);
End;

// + " " + DateToString(GetAppInfo(aiLeftDispDateTime))

User avatar
Henry MultiСharts
Posts: 9165
Joined: 25 Aug 2011
Has thanked: 1264 times
Been thanked: 2957 times

Re: Chaos Fractal

Postby Henry MultiСharts » 03 Apr 2018

Hello Abhi,

Please contact us directly if you are interested in custom programming services.

darob
Posts: 207
Joined: 20 Nov 2014
Has thanked: 57 times
Been thanked: 32 times

Re: Chaos Fractal

Postby darob » 04 Apr 2018

Hi Abhi,
I’m no programming expert and Henry’s offer is obviously the better option, but I’ve noticed the .net code is using a swing H/L function and the easylanguage a pivot H/L. Don’t know how they compare but .net also has a pivot H/L function (check out the canned Pivot_High/Pivot_Low indicators). You could try switching them into your Chaos Fractals to see if it gives you the result you want.


Return to “MultiCharts .NET”