Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

Aston01

What Am I Missing with My Slope Calculation Code ?

Recommended Posts

I seem to be having a little bit of an issue with my slope calculation and was hoping someone could double check that I had written it properly.

 

The issue is basically that even with the slope degree input adjusted to extremes, some of these flat spots still trigger differently. If working properly the small transition in the middle should have stayed magenta as opposed to going green for 2-3 bars and back to magenta. Am I missing something in my code ?

 

MASlope.jpg

 

 

Here is a snippet of the EasyLanguage code in question.

 

Inputs: 
SlopeAv(5); 

Vars; 
Slope(0); 

Avg = average( Close, length) ; 
Slope =(TLSlopeEasy(Avg,1,SlopeAv)); 

if colorMode = 1  
then setplotcolor[1](1, iff( Avg <Avg [1] and (Slope < .01 ), magenta, green ) ); 
plot1 (Avg , "Avg ");

 

 

Below is a snippet from the diagnostics file (area highlighted in blue is where the color shift occurs). Am I missing something ...seems like just the type of scenario I was trying to smooth. The answer could be staring me in the face and I might not be seeing it.

 

------------------------------------------------------------------------------

1111214 1419Avg 3.48Avg[1] 3.51|slope -0.04|condition FALSE

1111214 1419Avg 3.45Avg[1] 3.48|slope -0.03|condition FALSE

1111214 1420Avg 3.42Avg[1] 3.45|slope -0.03|condition FALSE

1111214 1420Avg 3.40Avg[1] 3.42|slope -0.03|condition FALSE

1111214 1420Avg 3.38Avg[1] 3.40|slope -0.03|condition FALSE

1111214 1420Avg 3.37Avg[1] 3.38|slope -0.02|condition FALSE

1111214 1420Avg 3.36Avg[1] 3.37|slope -0.02|condition FALSE

1111214 1420Avg 3.35Avg[1] 3.36|slope -0.02|condition FALSE

1111214 1421Avg 3.34Avg[1] 3.35|slope -0.01|condition FALSE

1111214 1421Avg 3.34Avg[1] 3.34|slope -0.01|condition FALSE

1111214 1423Avg 3.35Avg[1] 3.34|slope -0.01|condition FALSE

1111214 1424Avg 3.35Avg[1] 3.35|slope -0.00|condition FALSE

1111214 1426Avg 3.35Avg[1] 3.35|slope 0.00| condition FALSE

1111214 1429Avg 3.36Avg[1] 3.35|slope 0.00| condition FALSE

1111214 1429Avg 3.36Avg[1] 3.36|slope 0.00| condition FALSE

1111214 1429Avg 3.36Avg[1] 3.36|slope 0.00| condition FALSE

1111214 1430Avg 3.36Avg[1] 3.36|slope 0.00| condition FALSE

1111214 1430Avg 3.36Avg[1] 3.36|slope 0.00| condition FALSE

1111214 1430Avg 3.36Avg[1] 3.36|slope 0.00| condition FALSE

1111214 1431Avg 3.35Avg[1] 3.36|slope -0.00|condition FALSE

 

Any help would be much appreciated

Share this post


Link to post
Share on other sites

The code you posted is not the code that produced the chart you posted. When asking for help it is best if your chart includes the symbol name in the picture. The symbol should be set to exchange time. This enables calibrating a test case to the aproximately 14:30 time (on this unknown symbol) using some code other than the code you posted.

Share this post


Link to post
Share on other sites
the middle should have stayed magenta as opposed to going green for 2-3 bars and back to magenta. Am I missing something in my code ?

 

if colorMode = 1

then setplotcolor[1](1, iff( Avg <Avg [1] and (Slope < .01 ), magenta, green ) );

plot1 (Avg , "Avg ");

 

The color is controlled by 'Avg' being up or down since the last bar. Avg <Avg [1]. If you wanted it delayed, wouldn't you need to check multiple bars?

 

To change color down it would need to pass this test:

 

Avg <Avg [1] and Avg[1] < Avg [2] and Avg[2] < Avg [3]

 

otherwise stay the same color, or display a neutral color.

 

var: ChangeDown(False), ChangeUp(False);

 

ChangeDown = Avg <Avg [1] and Avg[1] < Avg [2] and Avg[2] < Avg [3];

ChangeUp = Avg >Avg [1] and Avg[1] > Avg [2] and Avg[2] > Avg [3];

 

if ChangeDown then

setplotcolor[1](1, magenta )

else if ChangeUp then

setplotcolor[1](1, Green );

Share this post


Link to post
Share on other sites

The formula for slope is slope=(endprice-startprice)/length; A threshold can be optimized to filter out undesirable slope levels.

input: threshold(.1);
var: avg(0), slope(0);

avg=average(c,10); 
slope=(avg-avg[10])/10;

if slope > threshold then setplotcolor(1,green) 
else if slope < -threshold then setplotcolor(1,red);

plot1(avg,"avg");

Share this post


Link to post
Share on other sites
Thanks for confirming, that is the classical definition. Many people use the regression line slope also.

 

another effective (and more robust) way to determine direction (actually a form of "slope") can be the SDX - signed direction index

 

SDX

 

Tom

Share this post


Link to post
Share on other sites
another effective (and more robust) way to determine direction (actually a form of "slope") can be the SDX - signed direction index

 

SDX

 

Tom

 

Tom, I'm trying to translate sdx. Please post source code. From the formula, I understand S=Speed but I don't understand the line below.

 

S(i) = P(i) - P(i-1) i= 1, ... , k-1

 

If i represents an index from 1 to 10 what does k represent? ... a 1 point increment in grid? Can you help me visualize k in the code below?

 

for i=1 to 10 begin
   s(i)=p(i)-p(i-1);
end;

Share this post


Link to post
Share on other sites

Hi onesmith

 

thanks for asking.

 

Since you are interested in a recent value of the "direction", you limit your computations to a recent number of price variations ("moves" from a gridline to another). The (k-1) would represent how many latest distinct price changes you are considering to assess the recent "direction".

 

When you use equispaced gridlines (and do not use weighting), you can just simplify as follows (which is immediately intuitive to visualize):

             Number of "UpMoves" - Number of "DownMoves"
sdx =     --------------------------------------------------------------------   *  100
                              Number of all "Moves"  

 

intending here "UpMoves", "DownMoves", "Moves" as the distinct price "moves" from a gridline to the adjacent one.

 

[ The distance between gridlines depends on your "timeframe" (similar to when you measure time, you may be interested in microseconds variations, or you may just be intested in minutes, depending on what you are doing).

 

(I often use a distance between gridlines equal to 0.1% of the price.) ]

 

Let me know if something unclear here.

 

 

Tom

 

 

Tom, I'm trying to translate sdx.

[...]

If i represents an index from 1 to 10 what does k represent? ... a 1 point increment in grid? Can you help me visualize k in the code below?

 

for i=1 to 10 begin
   s(i)=p(i)-p(i-1);
end;

Edited by tommaso

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Topics

  • Posts

    • re racISM Seek the truth. Confront the lies.   Any white people who are racist are racist out of fear ... any 'supremacy' beliefs are compensatory.  Same with blacks... Seek the truth. Confront the lies.   Contrary to what you've been taught in school and now in culture, white people did not invent slavery.  Nor have they applied the most consistently horrific practices of slave owners, historically or currently.   Contrary to what you've been taught in school and now in culture, in fact, white people have done more to eradicate slavery / humans as property from the face of the earth than any other race - ever.   Seek the truth.  Confront the lies.  If you're white, don’t allow yourself to be guilted.   That just compounds the issues and divisions.   You are not individually or collectively responsible for the exploitation of minorities by a small percentage of psychopaths who happen to also be the same ‘race’ as you are ...  just because black people’s ‘self esteem’  generally needs to rise - especially those ‘trapped’ on the concrete plantations - is no reason your’s needs to fall ... don’t play into ivory tower false dialectic psyops designed to enslave EVERYBODY!   “A man’s rights rest in three boxes: the ballot box, the jury box, and the cartridge box.”  Frederick Douglass, 1867  civil rights leader in response to post-Civil War segregation laws... my god was that boy and this boy unwoke or what 
    • The intent of this post is to divert your attn. from the lie campaign about the appearance of improprieties by Hunter and Joe Biden...“The emails are Russian” is going to be the official dominant narrative in mainstream political discourse, and there’s nothing you can do to stop it. Resistance is futile. It will likely be too deep for most ‘millennials’  racISM https://www.realclearpolitics.com/articles/2020/10/12/the_civil_rights_legend_who_opposed_critical_race_theory_144423.html marxISM https://ammo.com/articles/cultural-marxism-gramsci-how-disciples-of-gramscian-marxism-subverted-america
    • EURJPY UPSIDE TRACTION OVERPOWERS BEARS, EYES 124.00 LEVEL   EURJPY Price Analysis – October 16 EURJPY is accelerating from a low of around 123.00 as upside potential prevails over sellers for another session on Friday. The cross has so far managed to hold above the 123.00 level. Given the uncertainty, it would be a mistake to set an end date for the response to the pandemic, European Central Bank (ECB) governing board member said on Friday. Key Levels Resistance Levels: 127.07, 126.46, 125.00 Support Levels: 123.00, 122.37, 119.31 EURJPY Long term Trend: Ranging As noted on the daily chart, if selling momentum picks up additional pace, then the pair is expected to continue to the next relevant area around 123.00, where it sits low in October. Further south, there is critical horizontal support just above the 122.37 level. While the RSI recovery from the near oversold area suggests a further recovery in the pair, a clear break of the 124.00 marks becomes necessary for the EURJPY bulls ahead of the 124.43 level and the weekly high near the 125.00 level. EURJPY Short term Trend: Bearish EURJPY intraday bias remains bearish, with 38.2% retracement from 114.39 to 127.07 at 122.37. A solid break there would confirm a resumption of the entire corrective fall from 127.07 and aim a 61.8% correction at 119.25, close to the pivotal support at 119.31. On the other hand, however, a break of the 125.00 level will bring the upward trend back to retest the 127.07 level. Conversely, a clear dip below the 123.00 level could plummet towards the 120.00 psychological magnets.   Source: https://learn2.trade                   
    • When emotions get in the way of trading success – Part 2 Veterans of the markets generally agree that trading is largely psychological. That is one of the reasons why a trader with suboptimal strategy will trade profitably and another trader with a good strategy will be making losses. The method one trader uses to trader their way to financial freedom is what another trader uses and experiences pecuniary ruin. Why are some people, who have access to excellent trading tools and strategies still struggle with the markets? It boils down to the mindset of the trader. To throw more light on this issue, you can read below a section from an article by Dr. Van K. Tharp, titled “Mental Strategies Versus Trading Systems.” “One of the best traders in the world told me once that he traded a simple trend-following system. He taught other traders how to trade that way and in the process, he claimed that often they developed systems that were more profitable than his! Yet he feels comfortable following his system so he sticks with it. What about the traders he has trained? Most never completed his training but a few found some success — yet none of his students has ever achieved the many years of consistent profits that he has. Why not? Great trading systems do not produce success; great traders produce success! Years ago, I visited the office of another well-known trader to profile him and his colleagues. What struck me was that several of the people in his office were not very successful — even though they were trading the same exact methods that he had used to make hundreds of millions of dollars. Why? In part, his mental strategy was quite different from those of his colleagues. How you trade relates more to your mental strategies than to your trading system. Would you disagree? Then how do you explain the lack of success of some of the people in his office trading the same great system as that top trader… Another well-known trader actually wants to teach people to be as successful as he has been. Thousands of traders have gone through his training yet he claims that only about 10% of his trainees will actually be successful using his methods. And the record seems to support his claim — people go through the training, but few come close to his level of success. Again, we have examples of people who know the rules of a winning system yet aren’t that successful. The reason that these top traders make money while others who use the same systems do not is — systems don’t make money, traders do. Then Do You Need a Trading System? Since the trader, not the system, is responsible for success, do you need a trading system? Top traders use systems so yes, you still need to use a trading system. What then is the purpose of a trading system? My research indicates that trading systems are an essential shortcut for human decision making. You have probably discovered that most human decision-making strategies are complex and slow. For example, think about the last time you bought a car and had to decide on the make, model, color, dealer, price, etc. You probably took several days at minimum to decide. Traders cannot afford that kind of time to make a decision. They need a shortcut or system in order to make quick decisions. Ideally, your trading system should signal an action and you should go through a quick “see/recognize/feel/act” strategy and take the trade. That is, you see the signal, recognize that it is familiar, and because it matches what you are looking for, you feel good about it and act on it. This is the simple mental strategy for action mentioned in the tasks of trading — but most traders cannot do that! They were successful in some domain (engineering, business, medicine, etc.) using a particular decision strategy and they want to continue to use that strategy in the market. As a result, when they see a signal to trade, they use their well learned decision-making strategy to decide if signal is valid and whether or not to act on the signal. Their “normal” strategy that worked well for them for so long does not work well at all in the markets. They end up feeling some emotions when they trade and they lose money…. ….I believe that any trader or investor can win in the markets if he or she uses his or her mind properly. Nothing in my experience to date has given me any reasonable counter examples. Some people just operate at a level that requires a much greater degree of change in their mental strategies than other people. Mental strategies are not the kind of things most traders are interested in normally. They’d much rather learn a new indicator or system. Understanding that mental strategies are a huge edge, however, directs your attention away from external factors and leads you to explore your internal processes. Understanding and leveraging those processes can help you turn any good system into trading success…. Source: Vantharp.com Note: What are the solution? You need to work on your trading mindset and mental strategies. We will explore how to do this in the coming articles. Source: https://learn2.trade 
    • Gann was ahead of his time . Good stuff I hear he's trading with TRO now! LOL Tunneling for pips  Grab that Tro Tunneling radar screen indicator and start tunneling for Bitcoin!
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.