Plz Help:Indicator plot nothing - futures io
futures io



Plz Help:Indicator plot nothing


Discussion in TradeStation

Updated
    1. trending_up 2,338 views
    2. thumb_up 9 thanks given
    3. group 2 followers
    1. forum 22 posts
    2. attach_file 2 attachments




Welcome to futures io: the largest futures trading community on the planet, with well over 125,000 members
  • Genuine reviews from real traders, not fake reviews from stealth vendors
  • Quality education from leading professional traders
  • We are a friendly, helpful, and positive community
  • We do not tolerate rude behavior, trolling, or vendors advertising in posts
  • We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community.  It's free and simple.

-- Big Mike, Site Administrator

(If you already have an account, login at the top of the page)

 
Search this Thread
 

Plz Help:Indicator plot nothing

(login for full post details)
  #1 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received

HI guys,
I borrowed the MRA zigzag volume for MC, and deleted some codes which cannot be used in TS and there function not a must right now. The codes now is verified but dose not plot wave leg(zigzag line) or volume text. So please help to check, I cannot figure out why it plots nothing. Thanks!
-----------below is the codes-----------------------

Started this thread Reply With Quote

Can you help answer these questions
from other members on futures io?
need help writing easylanguage radarscreen weekly perfor …
EasyLanguage Programming
heatmap order flow +
NinjaTrader
Trading floor pivot levels
Traders Hideout
Denali Data?
Sierra Chart
Multichart NET: where can i find esplanation on CustomIn …
MultiCharts
 
Best Threads (Most Thanked)
in the last 7 days on futures io
I finally blew up an account
58 thanks
Spoo-nalysis ES e-mini futures S&P 500
40 thanks
FIO Journal Challenge - April 2021 w/Jigsaw Trading
38 thanks
The Crude Dude Oil Trading System
37 thanks
The tiyfTradePlanFactory indicator
25 thanks
 
(login for full post details)
  #2 (permalink)
 ABCTG   is a Vendor
 
 
Posts: 2,244 since Apr 2013
Thanks: 417 given, 1,495 received

jiaqiangmit,

is this the original code or the one with your changes? If it's the latter, I'd suggest to also post the original code as this might help tracking the issue down. I would also suggest to post the code within a code box, via the "Wrap [Code] tags around selected text" button.

Regards,

ABCTG

Follow me on Twitter Reply With Quote
The following user says Thank You to ABCTG for this post:
 
(login for full post details)
  #3 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received



ABCTG View Post
jiaqiangmit,

is this the original code or the one with your changes? If it's the latter, I'd suggest to also post the original code as this might help tracking the issue down. I would also suggest to post the code within a code box, via the "Wrap [Code] tags around selected text" button.

Regards,

ABCTG

It's codes I changed.
These are the original code
Quoting 
Inputs:
HiPrice( close ), // price field for high swings
LoPrice( close ), // price field for low swings
RetraceMethod( 1 ), // 1=Pnt, 2=%, 3=ATR, 4=UTC
Period( 2 ), // number of bars over which ATR or UTC is calculated
Retrace( 0 ), // retracement in Pnt, % or ATR multiple
PlotVolume( true ), // plots swing volume histogram
PlotSwings( true ), // plots ZigZag lines
PlotVolumeText( true ), // plots swing volume text of up/down swing at swing high/low
AvgVolume( false ), // shows average swing volume text in stead of cumulative swing volume text
ScaleVolumeBy( 1 ), // divides cumulative volume text by the number of this input
PlotPriceText( false ), // plots price change of up/down swing at swing high/low
PlotTimeText( false ), // plots duration of up/down swing at swing high/low
LineWidth( 0 ), // line width of ZigZag lines: 0,1,2,3,4,5,6
LineStyle( tool_solid), // line style of ZigZag lines: tool_solid, tool_dotted, tool_dashed, tool_dashed2, tool_dashed3
UpColor( red ), // line color of upswings: PowerLanguage colors
DnColor( red ), // line color of downswings: PowerLanguage colors
TextColor( black ), // text color: PowerLanguage colors
dis(3); //distance of text frome the high/low, added by Qin H Jia 20171213

Vars:
dailyTF( false ),
dir( 0 ),
hi( HiPrice ),
lo( LoPrice ),
lastLoBar( 1 ),
lastHiBar( 1 ),
lastHi( HiPrice ),
lastLo( LoPrice ),
swingHiCondition( false ),
swingLoCondition( false ),
vol( 0 ),
volUp( 0 ),
volDn( 0 ),
barsBack( 0 ),
x( 0 ),
tl( 0 ),
plotText( "" ),
waveTxt( 0 );

// Initialize variables
dailyTF = BarType >= 2 and BarType < 5;
hi = iff( RetraceMethod = 4, Highest( HiPrice, Period ), HiPrice );
lo = iff( RetraceMethod = 4, Lowest( LoPrice, Period ), LoPrice );
vol = iff( dailyTF, Volume, Ticks );

// set initial trend direction (dir will become non-zero after the first couple of bars)
if dir = 0 then
begin
if hi[0] > lastHi then // higher high
begin
lastHi = hi[0];
lastHiBar = CurrentBar;
if lo[0] > lo[1] then // higher low
dir = 1; // initial trend direction is up
end;
if lo[0] < lastLo then // lower low
begin
lastLo = lo[0];
lastLoBar = CurrentBar;
if hi[0] < hi[1] then // lower high
dir = -1; // initial trend direction is down
end;
end;

// look for swing points and draw lines

if dir > 0 then // trend is up, look for new swing high
begin
if RetraceMethod = 1 then swingHiCondition = lo[0] < lastHi - Retrace; // condition for swing high pnt
if RetraceMethod = 2 then swingHiCondition = lo[0] < lastHi * (1 - Retrace * 0.01 ); // condition for swing high %
if RetraceMethod = 3 then swingHiCondition = lo[0] < lastHi - ( Retrace * AvgTrueRange( Period ) ); // condition for swing high ATR
if RetraceMethod = 4 then swingHiCondition = hi[0] < lastHi and lo[0] < lo[1]; // condition for swing high UTC

if not swingHiCondition then
begin
if hi[0] >= lastHi then // found an equal high or higher high
begin
lastHi = hi[0];
lastHiBar = CurrentBar;
end;
// update cumulative volume of upswing
volUp = 0;
barsBack = ( CurrentBar - lastLoBar - 1 );
for x = barsBack downto 0
begin
volUp = volUp + vol[x];
if PlotVolume then
begin
NoPlot[x]( 2 );
Plot1[x]( VolUp, "Volume Up" );
end;
end;
// update current upswing line and text from lastLoBar
if PlotSwings then
begin
if AvgVolume and ( lastHiBar - lastLoBar ) <> 0 then volUp = volUp / ( lastHiBar - lastLoBar );
TL_SetEnd_Dt( tl, datetime[0], lastHi );
end;
plotText =
iffString( PlotTimeText, iffString( dailyTF, NumToStr( CurrentBar - lastLoBar, 0 ) + " bar(s)",
DateTimeToHMS( ( ELDateToDateTime( Date[0] ) - ELDateToDateTime( Date[CurrentBar - lastLoBar] ) ) +
ELTimeToDateTime_s( Time_s[0] ) - ELTimeToDateTime_s( Time_s[CurrentBar - lastLoBar] ) ) ), "" ) +
iffString( PlotVolumeText, NewLine + NumToSTr( volUp / ScaleVolumeBy, 0 ), "" ) +
iffString( PlotPriceText, NewLine + "+" + NumToSTr( ( lastHi - lastLo ) * PriceScale, 0 ), "" );
Text_SetLocation_Dt( waveTxt, datetime[0], High[0]+dis);
Text_SetString( waveTxt, plotText );
end
else if swingHiCondition then // found a swing high
begin
// update cumulative volume of upswing
volUp = 0;
barsBack = ( CurrentBar - lastLoBar - 1 );
for x = barsBack downto ( CurrentBar - lastHiBar )
begin
volUp = volUp + vol[x];
if PlotVolume then
begin
NoPlot[x]( 2 );
Plot1[x]( VolUp, "Volume Up" );
end;
end;
// update current upswing line from lastLoBar
if PlotSwings then
begin
if AvgVolume and ( lastHiBar - lastLoBar ) <> 0 then volUp = volUp / ( lastHiBar - lastLoBar );
TL_SetEnd_Dt( tl, datetime[CurrentBar - lastHiBar], lastHi );
end;
plotText =
iffString( PlotTimeText, iffString( dailyTF, NumToStr( lastHiBar - lastLoBar, 0 ) + " bar(s)",
DateTimeToHMS( ( ELDateToDateTime( Date[CurrentBar - lastHiBar] ) - ELDateToDateTime( Date[CurrentBar - lastLoBar] ) ) +
ELTimeToDateTime_s( Time_s[CurrentBar - lastHiBar] ) - ELTimeToDateTime_s( Time_s[CurrentBar - lastLoBar] ) ) ), "" ) +
iffString( PlotVolumeText, NewLine + NumToSTr( volUp / ScaleVolumeBy, 0 ), "" ) +
iffString( PlotPriceText, NewLine + "+" + NumToSTr( ( lastHi - lastLo ) * PriceScale, 0 ), "" );
Text_SetLocation_Dt( waveTxt, datetime[CurrentBar - lastHiBar], High[CurrentBar - lastHiBar]+dis );
Text_SetString( waveTxt, plotText );

dir = -1; // trend direction is now down
lastLo = lo[0];
lastLoBar = CurrentBar; // now seeking new lows
volDn = 0;
barsBack = ( CurrentBar - lastHiBar - 1 );
for x = barsBack downto 0
begin
volDn = volDn + vol[x];
if PlotVolume then
begin
NoPlot[x]( 1 );
Plot2[x]( VolDn, "Volume Down" );
end;
end;

if PlotSwings then // start new trendline from new swing high to most recent low
begin
if AvgVolume and ( lastLoBar - lastHiBar ) <> 0 then volDn = volDn / ( lastLoBar - lastHiBar );
tl = TL_New_Dt( datetime[CurrentBar - lastHiBar], lastHi, datetime[CurrentBar - lastLoBar], lastLo );
TL_SetExtLeft( tl, false );
TL_SetExtRight( tl, false );
TL_SetSize( tl, LineWidth );
TL_SetStyle( tl, LineStyle );
TL_SetColor( tl, DnColor );
end;
plotText =
iffString( PlotPriceText, NumToSTr( ( lastLo - lastHi ) * PriceScale, 0 ), "" ) +
iffString( PlotVolumeText, NewLine + NumToSTr( volDn / ScaleVolumeBy, 0 ), "" ) +
iffString( PlotTimeText, NewLine + iffString( dailyTF, NumToStr( lastLoBar - lastHiBar, 0 ) + " bar(s)",
DateTimeToHMS( ( ELDateToDateTime( Date[CurrentBar - lastLoBar] ) - ELDateToDateTime( Date[CurrentBar - lastHiBar] ) ) +
ELTimeToDateTime_s( Time_s[CurrentBar - lastLoBar] ) - ELTimeToDateTime_s( Time_s[CurrentBar - lastHiBar] ) ) ), "" );
waveTxt = Text_New_Dt( datetime[CurrentBar - lastLoBar], Low[CurrentBar - lastLoBar], plotText );
Text_SetStyle( waveTxt, 2, 0 );
Text_SetSize( waveTxt, 8 );
Text_SetColor( waveTxt, TextColor );
end;
end
else
begin // dir < 0, trend is down, look for new swing low
if RetraceMethod = 1 then swingLoCondition = hi[0] > lastLo + Retrace; // condition for swing low pnt
if RetraceMethod = 2 then swingLoCondition = hi[0] > lastLo * (1 + Retrace * 0.01 ); // condition for swing low %
if RetraceMethod = 3 then swingLoCondition = hi[0] > lastLo + ( Retrace * AvgTrueRange( Period ) ); // condition for swing low ATR
if RetraceMethod = 4 then swingLoCondition = lo[0] > lastLo and hi[0] > hi[1]; // condition for swing low UTC

if not swingLoCondition then
begin
if lo[0] <= lastLo then // found an equal low or lower low
begin
lastLo = lo[0];
lastLoBar = CurrentBar;
end;
// update cumulative volume of downswing
volDn = 0;
barsBack = ( CurrentBar - lastHiBar - 1 );
for x = barsBack downto 0
begin
volDn = volDn + vol[x];
if PlotVolume then
begin
NoPlot[x]( 1 );
Plot2[x]( VolDn, "Volume Down" );
end;
end;
// update current downswing line and text from lastHiBar
if PlotSwings then
begin
if AvgVolume and ( lastLoBar - lastHiBar ) <> 0 then volDn = volDn / ( lastLoBar - lastHiBar );
TL_SetEnd_Dt( tl, datetime[0], lastLo );
end;
plotText =
iffString( PlotPriceText, NumToSTr( ( lastLo - lastHi ) * PriceScale, 0 ) + NewLine, "" ) +
iffString( PlotVolumeText, NumToSTr( volDn / ScaleVolumeBy, 0 ) + NewLine, "" ) +
iffString( PlotTimeText, iffString( dailyTF, NumToStr( CurrentBar - lastHiBar, 0 ) + " bar(s)",
DateTimeToHMS( ( ELDateToDateTime( Date[0] ) - ELDateToDateTime( Date[CurrentBar - lastHiBar] ) ) +
ELTimeToDateTime_s( Time_s[0] ) - ELTimeToDateTime_s( Time_s[CurrentBar - lastHiBar] ) ) ), "" );
Text_SetLocation_Dt( waveTxt, datetime[0], Low[0]-dis );
Text_SetString( waveTxt, plotText );
end
else if swingLoCondition then // found a swing low
begin
// update cumulative volume of downswing
volDn = 0;
barsBack = ( CurrentBar - lastHiBar - 1 );
for x = barsBack downto ( CurrentBar - lastLoBar )
begin
volDn = volDn + vol[x];
if PlotVolume then
begin
NoPlot[x]( 1 );
Plot2[x]( VolDn, "Volume Down" );
end;
end;
// update current downswing line from lastHiBar
if PlotSwings then
begin
if AvgVolume and ( lastLoBar - lastHiBar ) <> 0 then volDn = volDn / ( lastLoBar - lastHiBar );
TL_SetEnd_Dt( tl, datetime[CurrentBar - lastLoBar], lastLo);
end;
plotText =
iffString( PlotPriceText, NumToSTr( ( lastLo - lastHi ) * PriceScale, 0 ) + NewLine, "" ) +
iffString( PlotVolumeText, NumToSTr( volDn / ScaleVolumeBy, 0 ) + NewLine, "" ) +
iffString( PlotTimeText, iffString( dailyTF, NumToStr( lastLoBar - lastHiBar, 0 ) + " bar(s)",
DateTimeToHMS( ( ELDateToDateTime( Date[CurrentBar - lastLoBar] ) - ELDateToDateTime( Date[CurrentBar - lastHiBar] ) ) +
ELTimeToDateTime_s( Time_s[CurrentBar - lastLoBar] ) - ELTimeToDateTime_s( Time_s[CurrentBar - lastHiBar] ) ) ), "" );
Text_SetLocation_Dt( waveTxt, datetime[CurrentBar - lastLoBar], Low[CurrentBar - lastLoBar]-dis);
Text_SetString( waveTxt, plotText );

dir = 1; // trend direction is now up
lastHi = hi[0];
lastHiBar = CurrentBar; // now seeking new highs
volUp = 0;
barsBack = ( CurrentBar - lastLoBar - 1 );
for x = barsBack downto 0
begin
volUp = volUp + vol[x];
if PlotVolume then
begin
Plot1[x]( VolUp, "Volume Up" );
NoPlot[x]( 2 );
end;
end;

if PlotSwings then // start new trendline from new swing low to most recent high
begin
if AvgVolume and ( lastHiBar - lastLoBar ) <> 0 then volUp = volUp / ( lastHiBar - lastLoBar );
tl = TL_New_Dt( datetime[CurrentBar - lastLoBar], lastLo, datetime[CurrentBar - lastHiBar], lastHi );
TL_SetExtLeft( tl, false );
TL_SetExtRight( tl, false );
TL_SetSize( tl, LineWidth );
TL_SetStyle( tl, LineStyle );
TL_SetColor( tl, UpColor );
end;
plotText =
iffString( PlotTimeText, iffString( dailyTF, NumToStr( lastHiBar - lastLoBar, 0 ) + " bar(s)",
DateTimeToHMS( ( ELDateToDateTime( Date[CurrentBar - lastHiBar] ) - ELDateToDateTime( Date[CurrentBar - lastLoBar] ) ) +
ELTimeToDateTime_s( Time_s[CurrentBar - lastHiBar] ) - ELTimeToDateTime_s( Time_s[CurrentBar - lastLoBar] ) ) ), "" ) +
iffString( PlotVolumeText, NewLine + NumToSTr( volUp / ScaleVolumeBy, 0 ), "" ) +
iffString( PlotPriceText, NewLine + "+" + NumToSTr( ( lastHi - lastLo ) * PriceScale, 0 ), "" );
waveTxt = Text_New_Dt( datetime[CurrentBar - lastHiBar], High[CurrentBar - lastHiBar], plotText );
Text_SetStyle( waveTxt, 2, 1 );
Text_SetSize( waveTxt, 8 );
Text_SetColor( waveTxt, TextColor );
end;
end;


Started this thread Reply With Quote
 
(login for full post details)
  #4 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received

Most of my changes are below
--------------------------------------
if PlotSwings then
begin
if AvgVolume and ( lastLoBar - lastHiBar ) <> 0 then volDn = volDn / ( lastLoBar - lastHiBar );//I use {} to nullify this line,for I don't need it to average the accumulative volume, and this line works in Tradestation if not nullified.
TL_SetEnd_Dt( tl, datetime[0], lastLo );//Ts dose not have _Dt reserve words, I changed to
Quoting 
TL_SetEnd( tl, date[0],time[0], lastLo );


end;
plotText =
iffString( PlotPriceText, NumToSTr( ( lastLo - lastHi ) * PriceScale, 0 ) + NewLine, "" ) +
iffString( PlotVolumeText, NumToSTr( volDn / ScaleVolumeBy, 0 ) + NewLine, "" ) +
iffString( PlotTimeText, iffString( dailyTF, NumToStr( CurrentBar - lastHiBar, 0 ) + " bar(s)",
DateTimeToHMS( ( ELDateToDateTime( Date[0] ) - ELDateToDateTime( Date[CurrentBar - lastHiBar] ) ) +
ELTimeToDateTime_s( Time_s[0] ) - ELTimeToDateTime_s( Time_s[CurrentBar - lastHiBar] ) ) ), "" );//the function DateTimeToHMS the author wrote does not work in TS, and I don't need it to plot time difference, so I changed this sentence to
Quoting 
plotText =iffString( PlotVolumeText, NumToSTr( volDn / ScaleVolumeBy, 0 ) + NewLine, "" );

for I just need it to plot the volume in text to simplify it

Text_SetLocation_Dt( waveTxt, datetime[0], Low[0]-dis );//same change in the _Dt
Text_SetString( waveTxt, plotText );
end


--------------------------------------------------------------
if PlotSwings then // start new trendline from new swing low to most recent high
begin
if AvgVolume and ( lastHiBar - lastLoBar ) <> 0 then volUp = volUp / ( lastHiBar - lastLoBar );
tl = TL_New_Dt( datetime[CurrentBar - lastLoBar], lastLo, datetime[CurrentBar - lastHiBar], lastHi );//
Quoting 
tl = TL_New( date[Currentbar-lastLoBar],time[CurrentBar - lastLoBar], lastLo, date[CurrentBar - lastHiBar],time[CurrentBar - lastHiBar], lastHi );

TL_SetExtLeft( tl, false );
TL_SetExtRight( tl, false );
TL_SetSize( tl, LineWidth );//Ts has no TL_setsize, so I use {} to nullify it.
TL_SetStyle( tl, LineStyle );
TL_SetColor( tl, UpColor );
end;
-----------------------------------------------------
if PlotVolume then
begin
Plot1[x]( VolUp, "Volume Up" );
NoPlot[x]( 2 );
end; //the NoPlot reserve word works different, I use {} to nullify it, for it's ok for me to not plot histogram accumulative volume in a sub-graph. If it can plot, it's better.
------------------------------------------------------------------------

Please check which was changed or deleted in the wrong way, thanks very much.

Started this thread Reply With Quote
 
(login for full post details)
  #5 (permalink)
 ABCTG   is a Vendor
 
 
Posts: 2,244 since Apr 2013
Thanks: 417 given, 1,495 received

jiaqiangmit,

your best approach might be to start over with the translation and do it block by block while you compare the internal code computations with additional print statements or blocks between MC and TS. This will help you in tracking down where the problem is coming from.
You can also do this with the code changes you made i.e. check with using prints or plots to see if they return a meaningful result.

Regards,

ABCTG

Follow me on Twitter Reply With Quote
 
(login for full post details)
  #6 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received


ABCTG View Post
jiaqiangmit,

your best approach might be to start over with the translation and do it block by block while you compare the internal code computations with additional print statements or blocks between MC and TS. This will help you in tracking down where the problem is coming from.
You can also do this with the code changes you made i.e. check with using prints or plots to see if they return a meaningful result.

Regards,

ABCTG

I checked the blocks, and I thinks they are all right. I'm not professional in coding, I think it's the best changes I can made. Could you check them when you are free? I have highlighted my changes .
Thanks very much.

Started this thread Reply With Quote
 
(login for full post details)
  #7 (permalink)
 ABCTG   is a Vendor
 
 
Posts: 2,244 since Apr 2013
Thanks: 417 given, 1,495 received

jiaqiangmit,

it's not necessarily your code modification, as your modified code plots in MC. I would suggest looking into the parts that draw the text and lines and update their location and I will gladly point you in the right direction when I can.

Regards,

ABCTG

Follow me on Twitter Reply With Quote
 
(login for full post details)
  #8 (permalink)
 ABCTG   is a Vendor
 
 
Posts: 2,244 since Apr 2013
Thanks: 417 given, 1,495 received

jiaqiangmit,

TS is a bit more sensitive when it comes to drawing/updating text and trendlines. This is an excerpt from the help file for the Text_SetLocation reserved word:

Quoting 
It is important to remember that if an invalid ID number is used, the reserved word will return a value of -2 and no additional operations will be performed on any text objects by the trading strategy, analysis technique, or function that generated the error.

This is most likely what is happening here i.e. your code tries (even if it's just once) to update a text or trendline with an ID that doesn't exist. This is turn, as the quote above clarifies, will not perform any additional text operations.

Adding code to check that the ID you want to update exists (or is greater than the value you used initialized this variable with at least) before you update a trendline or text id might already be the cure.

Regards,

ABCTG

Follow me on Twitter Reply With Quote
 
(login for full post details)
  #9 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received

Thanks. These are those part I changed to adapt Tradestation:

Quoting 
if PlotSwings then
begin
{if AvgVolume and ( lastHiBar - lastLoBar ) <> 0 then volUp = volUp / ( lastHiBar - lastLoBar );}
TL_SetEnd( tl, date[CurrentBar - lastloBar],time[CurrentBar - lastHiBar], lastHi );
end;
plotText = NumToSTr( volUp / ScaleVolumeBy,0){NumToSTr( volUp / ScaleVolumeBy, 0 )} ;

Text_SetLocation( waveTxt, date[CurrentBar - lastloBar],time[CurrentBar - lastHiBar], High[CurrentBar - lastHiBar]+dis );
Text_SetString( waveTxt, plotText );

the TL_SetEnd line updates the zigzag line.
the rest plot accumutative volume(volUP) scaled by the var:ScaleVolumeBy.

----------below are those plot new zigzag line and volume text.

Quoting 
if PlotSwings then // start new trendline from new swing high to most recent low
begin
{if AvgVolume and ( lastLoBar - lastHiBar ) <> 0 then volDn = volDn / ( lastLoBar - lastHiBar );}
tl = TL_New( date[CurrentBar - lastloBar],time[CurrentBar - lastHiBar], lastHi, date[CurrentBar - lastloBar],time[CurrentBar - lastLoBar], lastLo );
TL_SetExtLeft( tl, false );
TL_SetExtRight( tl, false );
TL_SetSize( tl, LineWidth );
TL_SetStyle( tl, LineStyle );
TL_SetColor( tl, DnColor );
end;
plotText =
iffString( PlotVolumeText, NumToSTr( volDn / ScaleVolumeBy, 0 ), "" ) ;
waveTxt = Text_New( date[CurrentBar - lastloBar],time[CurrentBar - lastLoBar], Low[CurrentBar - lastLoBar], plotText );
Text_SetStyle( waveTxt, 2, 0 );
{Text_SetSize( waveTxt, 8 );}
Text_SetColor( waveTxt, TextColor );


Started this thread Reply With Quote
 
(login for full post details)
  #10 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received



ABCTG View Post
jiaqiangmit,

TS is a bit more sensitive when it comes to drawing/updating text and trendlines. This is an excerpt from the help file for the Text_SetLocation reserved word:


This is most likely what is happening here i.e. your code tries (even if it's just once) to update a text or trendline with an ID that doesn't exist. This is turn, as the quote above clarifies, will not perform any additional text operations.

Adding code to check that the ID you want to update exists (or is greater than the value you used initialized this variable with at least) before you update a trendline or text id might already be the cure.

Regards,

ABCTG

The original zigzag volume indicator for MC first update the zigzag line, then draw new line if new top or bottom is formed. Is this the problem? the original codes for MC have been posted.

Also, I checked in MC, Text_SetLocation and Text_Setlocation in the help file does not have the
Quoting 
It is important to remember that if an invalid ID number is used, the reserved word will return a value of -2 and no additional operations will be performed on any text objects by the trading strategy, analysis technique, or function that generated the error.

Maybe in TS I should first use Text_new to draw new text then use Text_setLocation ?

Started this thread Reply With Quote
 
(login for full post details)
  #11 (permalink)
 ABCTG   is a Vendor
 
 
Posts: 2,244 since Apr 2013
Thanks: 417 given, 1,495 received

jiaqiangmit,

I posted a potential cause for the text and trendline not being shown and the solution here:


When you do the update i.e. before or after you draw a line shouldn't be a problem, but trying to update a non existent text or trendline will result in the problem described in the help file excerpt.

Regards,

ABCTG

Follow me on Twitter Reply With Quote
The following user says Thank You to ABCTG for this post:
 
(login for full post details)
  #12 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received


ABCTG View Post
jiaqiangmit,

I posted a potential cause for the text and trendline not being shown and the solution here:


When you do the update i.e. before or after you draw a line shouldn't be a problem, but trying to update a non existent text or trendline will result in the problem described in the help file excerpt.

Regards,

ABCTG

Thanks, I'll see to it.

Started this thread Reply With Quote
 
(login for full post details)
  #13 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received


ABCTG View Post
jiaqiangmit,

I posted a potential cause for the text and trendline not being shown and the solution here:


When you do the update i.e. before or after you draw a line shouldn't be a problem, but trying to update a non existent text or trendline will result in the problem described in the help file excerpt.

Regards,

ABCTG

the ID in Text_setlocation in waveText, which is a var as var:waveText(0).

The first block using Text_setlocation is here, the logic is:
trend is up,
if price did not drop to the set points to form a new down leg( if not swingHiCondition)
then update current upswing line and text from lastLoBar,
else, if price reaction to the set points to form a new down leg(if swingHiCondition),
update the up leg to the swinghigh bar

Quoting 
//if dir > 0 then begin // trend is up, look for new swing high
if not swingHiCondition then
begin
if hi[0] >= lastHi then // found an equal high or higher high
begin
lastHi = hi[0];
lastHiBar = CurrentBar;
end;
// update cumulative volume of upswing
volUp = 0;
barsBack = ( CurrentBar - lastLoBar - 1 );
for x = barsBack downto 0
begin
volUp = volUp + vol[x];
{if PlotVolume then
begin
NoPlot[x]( 2 );
Plot1[x]( VolUp, "Volume Up" );
end;}
end;
// update current upswing line and text from lastLoBar
if PlotSwings then
begin
{if AvgVolume and ( lastHiBar - lastLoBar ) <> 0 then volUp = volUp / ( lastHiBar - lastLoBar );}
TL_SetEnd( tl, date[0],time[0], lastHi );Print;
end;
plotText = NumToSTr( volUp / ScaleVolumeBy, 0 );print;
Text_SetLocation( waveTxt, date[0],time[0], High[0]+dis);
Text_SetString( waveTxt, plotText );
end
else if swingHiCondition then // found a swing high
begin
// update cumulative volume of upswing
volUp = 0;
barsBack = ( CurrentBar - lastLoBar - 1 );
for x = barsBack downto ( CurrentBar - lastHiBar )
begin
volUp = volUp + vol[x];
{if PlotVolume thena
begin
NoPlot[x]( 2 );
Plot1[x]( VolUp, "Volume Up" );
end;}
end;
// update current upswing line from lastLoBar
if PlotSwings then
begin
{if AvgVolume and ( lastHiBar - lastLoBar ) <> 0 then volUp = volUp / ( lastHiBar - lastLoBar );}
TL_SetEnd( tl, date[CurrentBar - lastloBar],time[CurrentBar - lastHiBar], lastHi );
end;
plotText = NumToSTr( volUp / ScaleVolumeBy,0){NumToSTr( volUp / ScaleVolumeBy, 0 )} ;

Text_SetLocation( waveTxt, date[CurrentBar - lastloBar],time[CurrentBar - lastHiBar], High[CurrentBar - lastHiBar]+dis );
Text_SetString( waveTxt, plotText );


Started this thread Reply With Quote
 
(login for full post details)
  #14 (permalink)
 ABCTG   is a Vendor
 
 
Posts: 2,244 since Apr 2013
Thanks: 417 given, 1,495 received

jiaqiangmit,

you can utilize the build in functions "Text_Exist" and "TL_Exist" to check if an ID exists before you update it.
However it will most likely be enough to simply check that the respective ID variables (tl or waveTxt) are greater than zero before you are trying to update the text or trendline with this ID. This is likely were your code runs into the problem described in the help file i.e. it's enough if it tries to update a not existing ID (for example when waveTxt = 0). This would trigger the mentioned issue and the result would be a blank chart.

Regards,

ABCTG

Follow me on Twitter Reply With Quote
The following user says Thank You to ABCTG for this post:
 
(login for full post details)
  #15 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received


ABCTG View Post
jiaqiangmit,

you can utilize the build in functions "Text_Exist" and "TL_Exist" to check if an ID exists before you update it.
However it will most likely be enough to simply check that the respective ID variables (tl or waveTxt) are greater than zero before you are trying to update the text or trendline with this ID. This is likely were your code runs into the problem described in the help file i.e. it's enough if it tries to update a not existing ID (for example when waveTxt = 0). This would trigger the mentioned issue and the result would be a blank chart.

Regards,

ABCTG

Thanks, I added " if tl_exist(tl) then /if text_exist(wavetxt) " before those IDs, and it's plotting now. However, there is still two problem, please see Pic below:


the latest codes are:

Quoting 
Inputs:
HiPrice( close ), // price field for high swings
LoPrice( close ), // price field for low swings
RetraceMethod( 1 ), // 1=Pnt, 2=%, 3=ATR, 4=UTC
Period( 2 ), // number of bars over which ATR or UTC is calculated
Retrace( 0 ), // retracement in Pnt, % or ATR multiple
PlotVolume( true ), // plots swing volume histogram
PlotSwings( true ), // plots ZigZag lines
PlotVolumeText( true ), // plots swing volume text of up/down swing at swing high/low
AvgVolume( false ), // shows average swing volume text in stead of cumulative swing volume text
ScaleVolumeBy( 1 ), // divides cumulative volume text by the number of this input
PlotPriceText( false ), // plots price change of up/down swing at swing high/low
PlotTimeText( false ), // plots duration of up/down swing at swing high/low
LineWidth( 0 ), // line width of ZigZag lines: 0,1,2,3,4,5,6
LineStyle( tool_solid), // line style of ZigZag lines: tool_solid, tool_dotted, tool_dashed, tool_dashed2, tool_dashed3
UpColor( red ), // line color of upswings: PowerLanguage colors
DnColor( red ), // line color of downswings: PowerLanguage colors
TextColor( white ), // text color: PowerLanguage colors
dis(3); //distance of text frome the high/low, added by Qin H Jia 20171213

Vars:
dailyTF( false ),
dir( 0 ),
hi( HiPrice ),
lo( LoPrice ),
lastLoBar( 1 ),
lastHiBar( 1 ),
lastHi( HiPrice ),
lastLo( LoPrice ),
swingHiCondition( false ),
swingLoCondition( false ),
vol( 0 ),
volUp( 0 ),
volDn( 0 ),
barsBack( 0 ),
x( 0 ),
tl( 0 ),
plotText( "" ),var1(-99),var2(-99),
waveTxt(0 );

// Initialize variables
dailyTF = BarType >= 2 and BarType < 5;
hi = iff( RetraceMethod = 4, Highest( HiPrice, Period ), HiPrice );
lo = iff( RetraceMethod = 4, Lowest( LoPrice, Period ), LoPrice );
vol = iff( dailyTF, Volume, Ticks );

// set initial trend direction (dir will become non-zero after the first couple of bars)
if dir = 0 then
begin
if hi[0] > lastHi then // higher high
begin
lastHi = hi[0];
lastHiBar = CurrentBar;
if lo[0] > lo[1] then // higher low
dir = 1; // initial trend direction is up
end;
if lo[0] < lastLo then // lower low
begin
lastLo = lo[0];
lastLoBar = CurrentBar;
if hi[0] < hi[1] then // lower high
dir = -1; // initial trend direction is down
end;
end;

// look for swing points and draw lines

if dir > 0 then // trend is up, look for new swing high
begin
if RetraceMethod = 1 then swingHiCondition = lo[0] < lastHi - Retrace; // condition for swing high pnt
if RetraceMethod = 2 then swingHiCondition = lo[0] < lastHi * (1 - Retrace * 0.01 ); // condition for swing high %
if RetraceMethod = 3 then swingHiCondition = lo[0] < lastHi - ( Retrace * AvgTrueRange( Period ) ); // condition for swing high ATR
if RetraceMethod = 4 then swingHiCondition = hi[0] < lastHi and lo[0] < lo[1]; // condition for swing high UTC

if not swingHiCondition then
begin
if hi[0] >= lastHi then // found an equal high or higher high
begin
lastHi = hi[0];
lastHiBar = CurrentBar;
end;
// update cumulative volume of upswing
volUp = 0;
barsBack = ( CurrentBar - lastLoBar - 1 );
for x = barsBack downto 0
begin
volUp = volUp + vol[x];
{if PlotVolume then
begin
NoPlot[x]( 2 );
Plot1[x]( VolUp, "Volume Up" );
end;}
end;
// update current upswing line and text from lastLoBar
if PlotSwings then
begin
{if AvgVolume and ( lastHiBar - lastLoBar ) <> 0 then volUp = volUp / ( lastHiBar - lastLoBar );}
if tl_exist(tl) then TL_SetEnd( tl, date[0],time[0], lastHi );
end;
plotText = NumToSTr( volUp / ScaleVolumeBy, 0 );print;
if text_exist(wavetxt) then Text_SetLocation( waveTxt, date[0],time[0], High[0]+dis);
if text_exist(wavetxt) then Text_SetString( waveTxt, plotText );
end
else if swingHiCondition then // found a swing high
begin
// update cumulative volume of upswing
volUp = 0;
barsBack = ( CurrentBar - lastLoBar - 1 );
for x = barsBack downto ( CurrentBar - lastHiBar )
begin
volUp = volUp + vol[x];
{if PlotVolume thena
begin
NoPlot[x]( 2 );
Plot1[x]( VolUp, "Volume Up" );
end;}
end;
// update current upswing line from lastLoBar
if PlotSwings then
begin
{if AvgVolume and ( lastHiBar - lastLoBar ) <> 0 then volUp = volUp / ( lastHiBar - lastLoBar );}
if tl_exist(tl) then TL_SetEnd( tl, date[CurrentBar - lastloBar],time[CurrentBar - lastHiBar], lastHi );
end;
plotText = NumToSTr( volUp / ScaleVolumeBy,0){NumToSTr( volUp / ScaleVolumeBy, 0 )} ;

if text_exist(wavetxt) then Text_SetLocation( waveTxt, date[CurrentBar - lastloBar],time[CurrentBar - lastHiBar], High[CurrentBar - lastHiBar]+dis );
if text_exist(wavetxt) then Text_SetString( waveTxt, plotText );

dir = -1; // trend direction is now down
lastLo = lo[0];
lastLoBar = CurrentBar; // now seeking new lows
volDn = 0;
barsBack = ( CurrentBar - lastHiBar - 1 );
for x = barsBack downto 0
begin
volDn = volDn + vol[x];
{if PlotVolume then
begin
NoPlot[x]( 1 );
Plot2[x]( VolDn, "Volume Down" );
end;}
end;

if PlotSwings then // start new trendline from new swing high to most recent low
begin
{if AvgVolume and ( lastLoBar - lastHiBar ) <> 0 then volDn = volDn / ( lastLoBar - lastHiBar );}
tl = TL_New( date[CurrentBar - lastloBar],time[CurrentBar - lastHiBar], lastHi, date[CurrentBar - lastloBar],time[CurrentBar - lastLoBar], lastLo );
TL_SetExtLeft( tl, false );
TL_SetExtRight( tl, false );
TL_SetSize( tl, LineWidth );
TL_SetStyle( tl, LineStyle );
TL_SetColor( tl, DnColor );
end;
plotText =
iffString( PlotVolumeText, NumToSTr( volDn / ScaleVolumeBy, 0 ), "" ) ;
waveTxt = Text_New( date[CurrentBar - lastloBar],time[CurrentBar - lastLoBar], Low[CurrentBar - lastLoBar], plotText );
Text_SetStyle( waveTxt, 2, 0 );
{Text_SetSize( waveTxt, 8 );}
Text_SetColor( waveTxt, TextColor );
end;
end
else
begin // dir < 0, trend is down, look for new swing low
if RetraceMethod = 1 then swingLoCondition = hi[0] > lastLo + Retrace; // condition for swing low pnt
if RetraceMethod = 2 then swingLoCondition = hi[0] > lastLo * (1 + Retrace * 0.01 ); // condition for swing low %
if RetraceMethod = 3 then swingLoCondition = hi[0] > lastLo + ( Retrace * AvgTrueRange( Period ) ); // condition for swing low ATR
if RetraceMethod = 4 then swingLoCondition = lo[0] > lastLo and hi[0] > hi[1]; // condition for swing low UTC

if not swingLoCondition then
begin
if lo[0] <= lastLo then // found an equal low or lower low
begin
lastLo = lo[0];
lastLoBar = CurrentBar;
end;
// update cumulative volume of downswing
volDn = 0;
barsBack = ( CurrentBar - lastHiBar - 1 );
for x = barsBack downto 0
begin
volDn = volDn + vol[x];
{if PlotVolume then
begin
NoPlot[x]( 1 );
Plot2[x]( VolDn, "Volume Down" );
end;}
end;
// update current downswing line and text from lastHiBar
if PlotSwings then
begin
{if AvgVolume and ( lastLoBar - lastHiBar ) <> 0 then volDn = volDn / ( lastLoBar - lastHiBar );}
if tl_exist(tl) then TL_SetEnd( tl, date[0],time[0], lastLo );
end;
plotText =

iffString( PlotVolumeText, NumToSTr( volDn / ScaleVolumeBy, 0 ) + NewLine, "" ) ;

if text_exist(wavetxt) then Text_SetLocation( waveTxt, date[0],time[0], Low[0]-dis );
if text_exist(wavetxt) then Text_SetString( waveTxt, plotText );
end
else if swingLoCondition then // found a swing low
begin
// update cumulative volume of downswing
volDn = 0;
barsBack = ( CurrentBar - lastHiBar - 1 );
for x = barsBack downto ( CurrentBar - lastLoBar )
begin
volDn = volDn + vol[x];
{if PlotVolume then
begin
NoPlot[x]( 1 );
Plot2[x]( VolDn, "Volume Down" );
end;}
end;
// update current downswing line from lastHiBar
if PlotSwings then
begin
{if AvgVolume and ( lastLoBar - lastHiBar ) <> 0 then volDn = volDn / ( lastLoBar - lastHiBar );}
if tl_exist(tl) then TL_SetEnd( tl, date[CurrentBar - lastloBar],time[CurrentBar - lastLoBar], lastLo);
end;
plotText =

iffString( PlotVolumeText, NumToSTr( volDn / ScaleVolumeBy, 0 ) + NewLine, "" ) ;

if text_exist(wavetxt) then Text_SetLocation( waveTxt, date[CurrentBar - lastloBar],time[CurrentBar - lastLoBar], Low[CurrentBar - lastLoBar]-dis);
if text_exist(wavetxt) then Text_SetString( waveTxt, plotText );

dir = 1; // trend direction is now up
lastHi = hi[0];
lastHiBar = CurrentBar; // now seeking new highs
volUp = 0;
barsBack = ( CurrentBar - lastLoBar - 1 );
for x = barsBack downto 0
begin
volUp = volUp + vol[x];
{if PlotVolume then
begin
Plot1[x]( VolUp, "Volume Up" );
NoPlot[x]( 2 );
end;}
end;

if PlotSwings then // start new trendline from new swing low to most recent high
begin
if AvgVolume and ( lastHiBar - lastLoBar ) <> 0 then volUp = volUp / ( lastHiBar - lastLoBar );
tl = TL_New( date[CurrentBar - lastloBar],time[CurrentBar - lastLoBar], lastLo, date[CurrentBar - lastloBar],time[CurrentBar - lastHiBar], lastHi );
TL_SetExtLeft( tl, false );
TL_SetExtRight( tl, false );
TL_SetSize( tl, LineWidth );
TL_SetStyle( tl, LineStyle );
TL_SetColor( tl, UpColor );
end;
plotText =

NumToSTr( volUp / ScaleVolumeBy, 0 );

waveTxt = Text_New( date[CurrentBar - lastloBar],time[CurrentBar - lastHiBar], High[CurrentBar - lastHiBar], plotText );
Text_SetStyle( waveTxt, 2, 1 );
{Text_SetSize( waveTxt, 8 );}
Text_SetColor( waveTxt, TextColor );
end;
end;


Started this thread Reply With Quote
The following user says Thank You to jiaqiangmit for this post:
 
(login for full post details)
  #16 (permalink)
 ABCTG   is a Vendor
 
 
Posts: 2,244 since Apr 2013
Thanks: 417 given, 1,495 received

jiaqiangmit,

good job, I am glad to hear that. It's hard to tell why it's missing text and trendline in these situation and you will most likely have to look at the internal values of your code within those times to track down if and why the lines and text are missing or if they get updated/drawn to a wrong location. This might take a bit of work and digging.

Regards,

ABCTG

P.S.: You can "Thank" posts on future.io if you think they have been helpful or want to show your appreciation.


jiaqiangmit View Post
Thanks, I added " if tl_exist(tl) then /if text_exist(wavetxt) " before those IDs, and it's plotting now. However, there is still two problem, please see Pic below:


the latest codes are:


Follow me on Twitter Reply With Quote
The following user says Thank You to ABCTG for this post:
 
(login for full post details)
  #17 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received


ABCTG View Post
jiaqiangmit,

good job, I am glad to hear that. It's hard to tell why it's missing text and trendline in these situation and you will most likely have to look at the internal values of your code within those times to track down if and why the lines and text are missing or if they get updated/drawn to a wrong location. This might take a bit of work and digging.

Regards,

ABCTG

P.S.: You can "Thank" posts on future.io if you think they have been helpful or want to show your appreciation.

ABCTG,
Thanks again, I finally made it! It turned out that when I transfer the tl_SetEnd_Dt (tl, datetime[XX],ePrice] for MC into tl_SetEnd[tl,date[xx],time[xx],ePrice] for TS, I pasted the wrong Hi Lo prices. Now it works as it in MC.

BTW, the block below(in Multicharts) plot the histogram for the accumulative volume for a zigzag wave, it need to un-plot several histogram when the zigzag bounce up and down. How can I make it in TS?

Quoting 
if PlotVolume then
begin
noPlot[x](2);
plot1[1](volup,"volume up")
end;


Started this thread Reply With Quote
The following user says Thank You to jiaqiangmit for this post:
 
(login for full post details)
  #18 (permalink)
 ABCTG   is a Vendor
 
 
Posts: 2,244 since Apr 2013
Thanks: 417 given, 1,495 received

jiaqiangmit,

you are welcome. You can not back reference NoPlot in Tradestation. One way to tackle this could be to set the plotcolor for that plot to transparent X bars back. Another way could be to set the plot to a value that is not visible on your chart (like 0 or 999999) and unchecking the option to "Expand Range to include Analysis Techniques" on the "Scaling" tab on the format symbol window.

Regards,

ABCTG

Follow me on Twitter Reply With Quote
The following user says Thank You to ABCTG for this post:
 
(login for full post details)
  #19 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received


ABCTG View Post
jiaqiangmit,

you are welcome. You can not back reference NoPlot in Tradestation. One way to tackle this could be to set the plotcolor for that plot to transparent X bars back. Another way could be to set the plot to a value that is not visible on your chart (like 0 or 999999) and unchecking the option to "Expand Range to include Analysis Techniques" on the "Scaling" tab on the format symbol window.

Regards,

ABCTG

setplotcolor(1,getplotbgcolor(1));

is this right?
and how to set it transparent?
Thanks.

Started this thread Reply With Quote
 
(login for full post details)
  #20 (permalink)
 ABCTG   is a Vendor
 
 
Posts: 2,244 since Apr 2013
Thanks: 417 given, 1,495 received

jiaqiangmit,

you can find an example in here:


Regards,

ABCTG

Follow me on Twitter Reply With Quote
The following user says Thank You to ABCTG for this post:
 
(login for full post details)
  #21 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received


ABCTG View Post
jiaqiangmit,

you can find an example in here:


Regards,

ABCTG

Thanks! I made it. I'll check if it works in the right way in real time. Great help.

Started this thread Reply With Quote
 
(login for full post details)
  #22 (permalink)
 jiaqiangmit 
Mianyang China
 
Experience: Beginner
Platform: Multicharts
Broker: broker: Oanda
Trading: HSI, DAX, ES
 
Posts: 81 since Aug 2017
Thanks: 18 given, 10 received


ABCTG View Post
jiaqiangmit,

you can find an example in here:


Regards,

ABCTG

Well, now the issue is, the past plot is OK, but the real time, it made no plots.

Started this thread Reply With Quote
 
(login for full post details)
  #23 (permalink)
 ABCTG   is a Vendor
 
 
Posts: 2,244 since Apr 2013
Thanks: 417 given, 1,495 received

jiaqiangmit,

I would suggest using the Print reserved word to understand what is going on within your code. This will help explaining why you don't see plots in realtime and in turn show you what needs to be changed.

Regards,

ABCTG

Follow me on Twitter Reply With Quote
The following user says Thank You to ABCTG for this post:


futures io Trading Community Platforms and Indicators TradeStation > Plz Help:Indicator plot nothing


Last Updated on January 19, 2018


Upcoming Webinars and Events
 

NinjaTrader Indicator Challenge!

Ongoing

HIRO Indicator by Spotgamma in Bookmap w/Brent Kochuba @ SpotGamma

Elite only

NEW BlackBird Features + FOREX Support w/Jeremy Tang @ SharkIndicators

Elite only
     



Copyright © 2021 by futures io, s.a., Av Ricardo J. Alfaro, Century Tower, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada), info@futures.io
All information is for educational use only and is not investment advice.
There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
no new posts