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.

Crazynasdaq

Members
  • Content Count

    25
  • Joined

  • Last visited

Everything posted by Crazynasdaq

  1. Well, as recent news talk about, it seems that the next step is not microseconds (1 /1 milion of second) but NANOseconds ( 1 / 1 billion of second) . Second - Wikipedia, the free encyclopedia Read what talks about this artcle http://analytics.informationweek.com/abstract/106/3255/Financial/accelerating-wall-street-2010-next-stop-nanoseconds.html This way is very difficult to link market quote fields to a time stamp and in the same time be very accurate. The best way seems to be linking them to a unique ID regard Trade which must match the ID regard ASK or the same ID regard BID. Technology about speed of market seems to push very very hard !!!
  2. I try to explain my way hoping to be clear in my reasoning. For now, no platform gives a time stamp accurate to milliseconds or more accurate. The best is still accurate to second even if Multicharts is working on milliseconds precision on one of its next release. However my reasoning is a deductive reasoning based on the assumption that if the module X_study of X_Trader from TT which patented their logical on CVD and certified it in its accurancy, is correct and accurate, it should work correctly regards synchronization about Bid-ask and trade(last). If this assumption is false, all the reasoning is false and the conclusion fall down. This way, If using DTN IQ feed, I find a way to duplicate that CVD in real time as in an historical way, I can think in a deductive way that my CVD is very very close to CVD from X_Study which I assume works correctly about the synchronization on bid-ask trade. The deductive reasoning tells me that if X_study is correct and my CVD is a good replica of X_study CVD, then my CVD works correctly and I can trust in my Code and in my datafeed (DTN IQ feed), specially regards synchronization of bid-ask and trade. A technological aspect on the time stamp on Multicharts, is that is NOT multicharts to give a time stamp to the datafeed, but it is collected as it is recieved from the datafeed which gives to the series of data the time stamp and it order the sequence of the trades, for bid- ask and last. This way different datafeed with the same numbers of trades, bid and ask work differently regard synchronization because the time stamp of the row of data is not multicharts based, but datafeed based and if the datafeed has not a synchronized server about bid-ask and trade, the trade can't be synchronized with bid or ask. An other thing about the synchronization is on the "id" of each tick/trade. As you write before, if you can't have a certified accurancy about milliseconds, it is very difficult to have a good synchronization. This is true if you link each trade to its bid or ask based on time. If you link each trade not on time, but on a unique ID regards the trade and this ID is the ID of the bid or ask, there is no reason to use milliseconds time stamp because to each trade ID must match to ASK ID or bid ID. This way even if the market works more quickly then now and in a next future we must talk about microseconds and not milliseconds, the logical structure has no need to be changed becasue it's not time based, but on ID sequence based. This is true even in an historical way and you can collect row of data about TRADE, about BID and about ASK which bring with them their unique ID (see the picture below). Then even this structure could have bugs or work not correctly, but for now seems the best I can trust nearest to the reality of market. The perfection maybe couldn't be reached. For my experience Laurus, the answer for now is NO..........maybe in the future eSignal will perform better than DTN, but today it's no so. CrazyNasdaq
  3. I've chosen X_Styudy from X_Trader TT because they certify the accurancy of their CVD that is not calculated in the client PC of the customer, but is recieved as a quote value from TT Servers as is close, high or low. They have patented their CVD as reported in the US patent storm System and method for calculating and displaying volume to identify buying and selling in an electronic trading environment - US Patent 7403921 Full Text and they certified it for its accurancy, so I assume that they have a good synchronization between bid-ask and last which are the fields on which CVD is calculated. For now, Multicharts is limited to 1 second as the smaller time stamp, but you can collect up to 3000 different ticks or more for each second (the tick precision is the maximum accurancy that you can have). The accurancy and the synchronization of your data is not based on Multicharts technology, but in the accurancy of your datafeed and DTN for now seems very good, so if you trust in DTN, you can trust in your synchroniztaion between bid and ask and in the accurancy of your bid- ask volume. Then my indicator isn't calculated ONLY in real time, but even for historical data because of DTN IQ Feed permits you to retrive historical data for LAST, BID or ASK back to 30 days back and Multicharts is able to collect that historical BID, ASK and LAST in different fileds which can be compared each other in an historical way and not only in real time. This is sure because is what I've made with my indicators and is verifiable in Multicharts site which is able to collect data and create an own historical database about bid and ask fields. In the same way you can verify it in DTN IQ feed site. It's not an artifact but they probably are different because of X_Study has a different way to calculate SD bands and you can't modify the way they are calculated in X_Study combine with X_Trader. My code is right in the same way is right Jperl's code and logic. I weight each new tick/volume with the old bars/volume. I know Jperl's logic and post and to him goes all my thanks for sharing those greatfull posts. The differences from X_Traders SD bands are based on the logic on X_Trader calculates those bands which is a lock code/logic.
  4. Multicharts can give an accurate synchronization between bid -ask and Trade if you use some datafeed like DTN IQ feed which is very accurate and can retrive historical bid-ask-trade back to 30 days. If you consider as benchmark X_Study from TradingTechnologies which is the creator of Cumulative Volume Delta which is a registered TradeMark of TradingTechnologies and which is certified in its accurancy from TT which sends its value from TT servers to client PC and it's not calculated in the client PC of each customer (in this way we assume that the TT CVD with X_Study is accurate to single tick and synchronized with the trade as they certified), you can compare each datafeed and each Cumulative Volume Delta to TT CVD. If You create a copy of CVD equal to TT CVD using a good datafeed, you can assume that your datafeed and your code works as it should work, so you can trust in it because it replies the original one that you assume as the correct one. In this way you can create a code using some functionality of Multicharts which collects and gives you an accurate indicator such the one I've posted some minutes ago. Below a comparison between X_Study CVD from X_Trader and my own CVD using DTN IQfeed on Multicharts (you can compare each CVD and you can see that they are very very close each other). This way I suppose that I can trust in my code and in DTN IQfeed data. I'm agree with you that not all the datafeeds are equal and accurate and not all can be done even with MC or Ninja, but if you use the correct "ingredients", a good work can be achieved. This my humble opinion. CrazyNasdaq
  5. Hi Challenger, I don't use Ninja Trader, I use Multicharts and I've coded this tool myself, but I don't give it away for free. It is one of many indicators that I lease with a monthly fee in an unique pack. Here is probably what you mean (see the picture attached). It's accurancy is tick precision and it works well in real time and it's not cpu instensive. Maybe you can find some NinjaTrader programmer who can code it for you, based on this picture, if it's what you look for.
  6. How do you convert TPO to Volume profile ? Which part of the code ? If you share with us some informations, maybe we can help each other .
  7. Hi Zardoz, maybe I know how to modify it to build a weekly Voume profile or a monthly or custom, because I've already done with the PVP indicator of DBntina and Blowfish. But you should share with us your code if you would like to recieve some support, considering that you have posted this request in a thread where we are trying to build a daily volume profile. CrazyNasdaq
  8. Hi Shrike, You have not understood well. I've made a packet of indicators and then I lease them, but only those that I've made myself like the Volume Profile, the Volume Control Panel, the Volume Force index, The Volume Pressure, the Volume acceleration and others little but useful stuff. The others, the ones that everyone can find on the web is free, so you did not understand well. I'm sorry, but you are wrong. CrazyNasdaq
  9. Thanks again TAMS. I'll correct my code and think again to it for a better way if it's wrong. Thanks Crazy
  10. Hi Zenfirm,

    I watch the Ant page and see that you look for Market Profile indicator and volume profile indicator.

    Do you find it ? If you found it can you post me or send me the link, please.

    I'm trying to make a volume profile indicator accurate to the tick, but nothing around.

    Thanks

     

    CrazyNasdaq

  11. This step (#5) is surely incorrect...... "for iPrice = 0 to (NRows-1) begin....... " is not the right way iPrice can't be = 0 at least it can be : for iPrice = HighDay downto LowDay begin MatrixVoL[iVolume] = MyVol; END; Or another way (I don't know if the syntax is correct): for iPrice = HighDay downto (HighDay - TickScale)=LowDay begin MatrixVoL[iVolume] = MyVol; END; This step is the most difficult !!!
  12. Thanks for the suggestion TAMS, I've read again the posts in the first page and the tutorial (post #2). Here is my way of doing it: 1) use a 1 tick chart with volume set to Trade volume and NOT tick count. ************************************* 2) identify the range of each day (past and real time) and reset it each new day: if date > Date[1] then begin OpenDay = open; HighDay = High; LowDay = low; CloseDay = close; end; If Date = date[1] then begin If high > HighDay then HighDay = High; If Low < LowDay then LowDay = Low; if time >= Sess1endtime then CloseDay = close; If time < Sess1endtime and lastbaronchart then CloseDay = close; end; RangeDay = HighDay - LowDay; ********************************************** 3) Identify the numbers of rows for each price of the day range : TickScale = minmove/priceScale; NRows = RangeDay * (1/TickScale); ********************************************** 4) Define the Array (1d dinamic array) regards volume: MyVol = iff(bartype < 2, Upticks + Downticks, volume); Array: MATRXIVoL[](0); iVolume = MyVol; iPrice = AvgPrice; if date > date[1] then begin Array_SetMaxIndex(MATRIX, NRows); // resize the array each day MATRIXVoL[iVolume] = 0; // rest to zero each day END; *********************************************** 5) Populate the Array for the past days and for the real time day if Date = Date[1] then begin fro iPrice = 0 to (NRows-1) begin MATRIXVoL[iVolume] = MyVol ; END; If AvgPrice = iPrice then begin MATRIXVoL[iVolume] = MATRIXVoL[iVolume] + MyVol; END; ************************************************ These are my steps, but as a newbie about arrays, I'm not so sure about step #5, specially the last part {if AvgPrice = iPrice then begin ......ecc.....} Then an other problem is: If this way is correct a functional, how can I draw the Volume profile ?? Thanks again TAMS for your patience and your time. P.S. I have some ideas about the plotting and using ADE about this Volume profile, but it would be better to talk about it in private and then posting the final work. If You want TAMS, write me in PVT to my TL private account.
  13. I'll try it and I write it here, so if you could help me in the step by step way maybe I'll make it faster and useful to anyone. Maybe if I post my thoughts and my codes you or someone else could help me doing that and we can achieve a code on an indicator that many would like to have. Thanks again for your time CrazyNasdaq
  14. No, I don't think that waht I want to build is a 3 dimensional array. I'm trying to build a Volume profile so it's a 2 dimensional array. First dimension unlimited and unknown is the range of each day (High of the day - Low of the day) * price scale (or tick scale as you want) Second dimensional array the volume of each level price (unknown ) So the final array is an array of the 2 first arrays each one unlimited. The final array I think is a 2 dimensional array. Is it possible ??? Or I must use ADE and maps collections ? Thanks again CrazyNasdaq
  15. Hi TAMS, Great Thread for newbie to ARRAY like me.........very useful......many Thanks!!! Now I've some questions about arrays: 1) is it possible to make an array of arrays ? For example an array made of 2 unlimited dimension array ? FirstArray[ ] (0); SecondArray[ ] (0); MyFinalarray[FirstArray, SecondArray](0); 2) I know that an array could be a numeric array [ (0) ] or a string array [ (text) ] or a True/false array, but waht does it mean if I find an array like this: MyArray [10] (-1); Thanks for you contribution on this study about array. CrazyNasdaq
  16. Hi TMAS and thanks for the link. I've tried to code myself, but with no result. Here is the actual situation and the code that I've tried. The string to retrieve is more simple than the first one, only a long number in 1 row and 1 column: 4409929648741489700 always in a directory with a txt file. I've tried the string "ELC.PathExists(FileName) " and it gives me back the proof of the existance of the txt file, but the complete code gives me back nothing........ **************************** Inputs: FileName("c:\temp\Autorization_code.txt"); Vars: DataMap(ListN.New), code(0), x(0); if CurrentBar > 1 then begin if ELC.PathExists(FileName) then begin value1 = ListN.ReadFile(DataMap, FileName); // Check map count in case file was empty if ListN.Count(DataMap) > 1 then begin code = ListN.Get(DataMap,1); end; value3 = ListN.Get(code, 1); X = text_new(d,t,c[1],""); If lastbaronchart then Text_setstring(x, numtostr(value3,0)); end else print ("File does not exist"); end; ******************************** I don't know how to get that code. Where I'm wrong ??? Thanks
  17. Hi, I'm not familiar with ADE and ELCollections so I ask an Help to You. I've a txt file with only 2 lines of string: 1st line "my date of birth" 2nd line "16081973" This file is in the directory C:/temp/date of birth with the name "DATEofBirth.txt" How can I retrieve the 2 strings in a code/indicator using ADE or ELCollections and Plot them as a string in the chart ??? The only way that I doesn't find is the correct way to get the string in the code, then I know very well the way to plot it in the chart. Thanks to anyone who gives me an help CrazyNasdaq
  18. Surely your note is correct and that's why I ask for the correct forumulation of the Intraday Intensity. The correct logic to build the correct and functional indicator. Maybe it could be in the same second: (Frequency x cumulative volume) @ ASK -- (Frequency x CUmulative Volume)@ Bid = Intraday Intensity In this way I've to slice the Bid from ASK and caclulate for each side Frequency (Numbers of trades in that second) x Cumulative Volume @ Ask Frequency (Numbers of trades in that second) x Cumulative Volume @ Bid and then subtract the firsts from the seconds In this way each trade and each volume at that frequency has the same weight (the firs is equal weighted than the last). Is this way correct ??
  19. In my opinion, the Logic behind Intraday Intensity is just frequency x volume. Most of the datafeed have seconds as minimum timestamp, so to discover frequency in just 1 second I have to work with single tick, make a tick counter and count how many ticks in just a second. In this way I have frequency. Then I multiply frequency with volume of eache single tick. This is my way (example): 10 different trades in just a second. 1 x 13 contracts = 13 2 x 5 contracts = 10 3 x 86 contracts = 258 4 x 113 contracts = 452 5 x 37 contracts = 185 6 x 3 contracts = 18 7 x 21 contracts = 147 8 x 1 contract = 8 9 x 234 contracts = 2106 10 x 9 contracts = 90 ---------------------------------- Total 10 different trades (that's my frequency) Total 522 contracts (That's my cumulative volume in that second) Total 3287 (intraday Intensity) = cumulative (Frequency x single Volume) This is my way..............Am I wrong ??
  20. Ok Tooker, very easy to create for you......... I've an idea of What UrmaB tell us and It's very interesting and usefull to analyze the logic of the market in a different way than before, but what I've created is not so close to UrmaB indicator as yours. Can you specify the logic or the code to obtain an indicator as yours so close to the Urmablume one ? Thanks
  21. I'm agree with You Kiwi. The post and the images posted by Urma don't tell Us nothing.....nothing to understand as they work, nothing to understand which phliosophy works behind them... volume....price or a mix of them....they are only images with dots and lines. I've worked on Volume profile very hardly in the last 2 years and on the relationship between volume and price. I've studied the relationship on the VWAP and the peak of volume, the differences between MarketProfile© and Volume Profile (little but very significant), the importance of Big players vs. small trader (SMart VS. Dumb) and I can clearly say that it's very important to understand these relationships using the today technology as tick data and Time& sale tape, bid vs. Ask or a proxy like Upticks vs. Dowticks. But a self celebratory post as the Urma one is unuseful and doesn't help anyone. It's like a joke against who read to bring them to a commercial purpose as selling them indicators and not a constructive manner to help the forum user as teaching them a knowhow built in a decade of studies. This is only my thought, but it's the second time on a different post that I read a post of Urma like this. Then anyone could think what he/she wants about me or about my thought, but this is my way of thinking about Urma latest posts.
  22. Thanks a lot again BlowFish. I'll try to make it on my own and if I reach a good target, I'll post it here for everybody, in honor of your work. Thanks again
  23. Hi BlowFish, I've read many of your posts in "Trading with market statistic" from Jperl, Volume splitter and others, and I use every day your stuff.......very cool and good stuff. I'm not very good with easylanguage, only simple things, so when I've read your post that you can create a Volume histogram simply modifying and looping the PVP indicator used for the VWAP + PVP using ADE, I've decided to write you about this. I use Multicharts and tradestation (better Multicharts than TS), so if you could help me in coding the entire Volume histogram using tick chart and ADE, I will thank you all the life......and I post all the charts or all what your code display here Sorry for my not good english, but I'm italian and not very good in english writing. Thanks and Regrads CraZyNasdaQ
  24. Hi guys, thanks for all and for this great stuff and great thread. I only want to make a statement about VS_MACD 4 . The formula is: ..... ..... avg=(DeltaH+DeltaL+DeltaCu)/3; value1=xaverage(MACD(avg,length1,length2),MACD_Length); Plot1(value1,"MACD"); Plot2(0,"ref",Yellow); Well, this is not the MACD of 2 different blocks average, the fast one and the slow one, but it's the Xaverage of the macd, so it's not correct because in this way you are watching the trigger of the macd and not the real macd. As TS formula reports, the macd formula is: ..... ..... var0 = MACD( Close, FastLength, SlowLength ) ; var1 = XAverage( var0, MACDLength ) ; var2 = var0 - var1 ; Plot1( var0, "MACD" ) ; Plot2( var1, "MACDAvg" ) ; Plot3( var2, "MACDDiff" ) ; Plot4( 0, "ZeroLine" ) ; So when you define the "avg" avg=(DeltaH+DeltaL+DeltaCu)/3; You create a paremeter on which calculate the avereges, and the MACD of this parameter is: value1=MACD(avg,length1,length2); then the Trigger is: value2=xaverage(MACD(avg,length1,length2),MACD_Length); So what you are watching is not the MACD but its trigger in the VS_MACD4 version. If You watch at the real macd maybe it fits better the EOTPro VOlume SPlitter
×
×
  • Create New...

Important Information

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