Hi, The chaos fractal in Multicharts.NET paints the dots as shown below. please open the image in a new window or tab.
I have worked quite a bit on easlylanguage. The easylanguage chart looks as below
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
Chaos Fractal
Re: Chaos Fractal
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
Re: Chaos Fractal
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))
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))
- Henry MultiСharts
- Posts: 9165
- Joined: 25 Aug 2011
- Has thanked: 1264 times
- Been thanked: 2957 times
Re: Chaos Fractal
Hello Abhi,
Please contact us directly if you are interested in custom programming services.
Please contact us directly if you are interested in custom programming services.
Re: Chaos Fractal
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.
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.