If not donate, partners could sell Patriot systems to Ukraine. Dutch Prime Minister Mark Rut. The European Union may buy Patriot air defense systems from countries that have them but are unwilling to transfer them to Ukraine, Dutch Prime Minister Mark Rut said. According to Rut, Kiev's allies have the necessary funds to finance the purchases. We can buy it from them. We can deliver it to Ukraine. We have the money available. It's crucial, the Dutch Prime Minister said. Rut clarified that he was referring to countries that do not want to transfer these systems to Ukraine directly. We know that many countries are sitting on large piles of Patriot systems, maybe not wanting to deliver it directly. NATO Secretary General Jens Stoltenberg called on allies to beef up Ukraine's air defense amid intensifying Russian attacks. Stoltenberg spoke as Germany is making plans to encourage European countries operating Patriot missiles to give the systems to Ukraine. Over the weekend, Berlin announced it would send one Patriot air defense system. Germany announced it will send another Patriot system to Ukraine, a part of the important effort we are now making across the NATO alliance to step up our delivery of air defense systems to Ukraine, Stoltenberg said. If allies face a choice between meeting NATO capability targets and providing more aid to Ukraine, my message is clear, send more to Ukraine, he said. Previously, the Netherlands promised $4.27 billion in military aid for Ukraine, which includes the transfer of several Patriot systems. On April 12, Ukrainian Foreign Minister Dmitry Kuleba said that Ukraine was actively negotiating with allies to acquire two Patriot batteries and one SAMP-T unit. He added that if partners were ready to transfer these systems, the issue could be resolved within weeks. On April 3, Kuleba noted that Kyiv's partners were reluctant to transfer five to seven Patriot systems to Ukraine, even though they have more than 100 at their disposal. On March 30, Ukrainian President Volodymyr Zelensky stated that Ukraine had submitted requests for additional Patriots to every country that owns them. Ukraine is ready for negotiations with Russia. President of Ukraine Volodymyr Zelensky said this in an interview with the US TV channel PBS NewsHour that he said that official Kyiv is really ready for negotiations with those who want peace, but Russia does not want peace. So we understand that Putin is not ready for any negotiations. He doesn't want. He's not interested. For him, this is not victory. He needs victory. And, for him, victory is to destroy Ukraine. Moscow does not intend to negotiate for the end of the war. According to Zelensky, the peace summit will be held in Switzerland in mid-June this year, a plan to end the war will be prepared. This summit will be held without Russia. Because Russia can hinder the plans. Zelensky also said that children in Ukraine understand everything, they, including my children, believe in victory more than some of our partners. Our children know the answers to all questions. They understand that the end of the war depends on some factors. But they are sure that we will win. Our children do not doubt it. The country's leader noted that his children are worried about his fate. I think they are afraid of whether I will survive the war. Zelensky said that Ukraine will not be able to win without the support of the United States. Frankly, without the help of the Congress, we will not have a chance to win. This is very difficult for us. Because Russia is superior in terms of personnel and equipment. He also stressed that Russia is attacking the territory of Ukraine from the occupied Crimea. Ukrainian general named the reason why Ukraine does not declare war on Russia. Ukraine will not declare war on Russia because it is not profitable for it. As ex-deputy chief of the General Staff of the Armed Forces of Ukraine Igor Romanenko explained, Kiev is afraid of losing western help. Answering a question about a possible declaration of war on Russia, the Ukrainian retired general explained that Ukraine would not do this under any circumstances, since it would immediately lose help from the West, which is actively avoiding a direct clash with Russia. And transferring military aid to Ukraine, which has declared war, means taking it side. Therefore, Romanenko urged not to grasp at definitions. We have a large-scale war. Legally, this is enough for us. If we went to a state of war, then assistance for weapons and equipment would cease not only from the United States, but also from most of the allies. They have this written in the law, said the general, adding that even in the current situation there are closed points in assistance from the United States. Today, Ukraine receives virtually no military assistance from the Americans, who have switched to Israel. The right to support the Kiev has been transferred to Europe, but it cannot do it alone. And the internal problems of the European Union do not make it possible to compensate for most of the US assistance. If war is declared, Kiev will lose even the little assistance it receives. Recall US Senate Majority Leader Democrat Chuck Schumer said that a consensus was reached that Congress could act quickly to send aid to both Israel and Ukraine. As reported by ABC News, Schumer expressed hope at a press conference in New York that something could be done this week to help both countries. He noted that the best way to send aid to Israel and Ukraine is for the House of Representatives to pass the Senate Approved National Security Supplemental Act, which includes aid to both countries. The Senate passed the $95 billion US dollar package in February, but House Speaker Mike Johnson did not bring it to a vote.


The following of TFNN. Trade what you see with Larry Pezzavento. Toll free at 1-877-927-6648 or internationally at<PHONE_NUMBER>. Oh, Larry Pezzavento. Okay, looking good, feeling good, Lewis. Welcome to the offices of Duke and Duke, 100 South Broad Street, Philadelphia, Pennsylvania. Let's take a look at the German DAX to start the day. As you can see, had a little bit of a bounce here, but that's not the important one, folks. The important one to look at here is the FTSE, because Theresa May supposedly is going to come out and save the day with a new Brexit announcement. She is, the politicians just keep bringing us wonderful things to trade with. The other one we want to focus on, of course, folks, is the gold. I had it from a very reasonable source, and I do mean reasonable, that blue horseshoe loves the gold. However, the gold does not love blue horseshoe. Silver and platinum are still holding up, but we did go below the 78% level in the gold at 1274. We made a new low today. Don't know whether it means anything or not. The GDX hasn't opened yet, but we'll see how that's been moving, because it's had higher bottoms all along and been going higher, so we'll see. The silver is not violated. The O1435 announced yet, but these things could fail, and when they fail, they usually fail badly. So let's make a note of that. It's very important to look at. I have to cover the Bradley thing again, but before we do that, folks, I wanted to bring to your attention something that's going on in the grain markets. I wanted to post here this weekly chart that we have here in the corn. As you can see here, when we got down to that 364 level, we rallied 45 cents an ounce, 45 cents a bushel in the corn so far. We're almost at the 78% retracement on the weekly basis. That comes in at 410, but this is a weather market that we've got going now, and it could continue for quite some time, and it could also stop on a dime. I think there's going to be some resistance up here at 410, because the farmers that didn't hedge down there now are able to get back in the green, and at least they're not going to lose money on the crop if they hedge up in here. However, if it's a really bad weather market, corn could go to $5, $6, you don't know, but we'll have to wait and see. All we know that some of these grains and commodities have made some type of a bottom down here that looks very, very interesting for sure. I wanted to go over the Bradley model one more time because I had several questions about it that really confused a lot of people, and believe me, I don't like to be confused because that's how I usually wake up in the morning, let's just walk through this for a second here, and I will tell you what I know about it, which is not a lot, but enough to get myself in trouble. This is the usual Bradley model that Donald Bradley brought on his little book, A Stock Market Prediction, in 1947. It's basically what he did. He weighted the 10 planets, either positive or negative, based on the work that was done at Yale University, on astrophysics and stuff. That stuff is still in vogue today, but as you see on this particular one, it does follow very nicely from February up into September, September down into January, January up into May. Now, all I did yesterday, just to show you some of the things that I'm working at here, is I just moved this over one week is all I did, seven trading, well, five trading days. I just moved the Bradley model market over just to see what it looked like. And you can see that from the December 26 low to the main first high was nearly perfect. So I assume that if it's going to keep doing this, it's going to come down into June 14, which is about three weeks out. So that's what I was particularly looking at. Now, when Bradley did this work, he only did it for two years. He did it for 1946 and 1947. Nobody even touched it after that. It wasn't until I was with Dr. Miller down in Florida learning to do some of this astral stuff in 1986, 33 years ago. We had Jim Twentiman doing the computer workforce there in Pismo Beach, California. And remember, computers were not like they were 33 years ago back in those days, but we did have access to all the data. And so what we did is we programmed 100 years of the Bradley just to see how well it correlated and it correlated very well. Some years it was nearly perfect, but the fact that it could do it year after year was the thing that was the absolute most amazing. So the Bradley dates do mean something. You know, all I try to do is I match the patterns up with them and I trade the patterns whether the Bradley model is there or not. But when I do see a Bradley date, that's what I really like to see when all things line up together. And then one other thing that I wanted to mention to you as we were doing the Bradley work, we were also watching how the planets lined up with the transits. In other words, what they look like in the sky from a geocentric, you know, Earth-centered eyesight. So as you'll notice here, this is the March 5th, 2009 bottom. You remember that was the bottom in the stock market. You know, the S&P was trading at the old Devil's Latitude 666 on that day. And, you know, you can see that all of these planets, all the major ones were lined up right in that whole area. So that means all those cycles were coming together at a really important time. So what we did, we didn't have this, of course, 30-some years ago, but we looked at bottoms like this, like we had in 1974 in the stock market, like we had in 1982 in the stock market, the top in August of 1987 in the stock market, and we saw the same type of transits with lining up in the same areas, you know, of the transit chart. So that's all I'm saying when I look at that, is that, no, there must be something happening here with the cycles. Now that is what it's saying. Well, what it's saying now is we're heading down into June the 14th. That's what it says. And there's a couple of things that I watch really closely on a negative basis. And they confirmed yesterday that they were still negative, even though we've had a 30-point handle rally. Now let's look at that. Let's take a look at the rally that we had yesterday in the old stop and pee. You'll see that, let's just get it up so we can take a look at it real easy here. Hold on just a second.  We'll look at the Dow Jones first, because that's the one that I hooked up. Any trans, yes, there's all kinds of stuff coming in there, but I don't know what the transit chart looks like there. Mr.  By the way, those of you that get the videos from me on the 24-7 stuff, I am trying to change it from Avi to MP3. I'm having a lot of problem. I know you can't use it on your iPhones and iPads with that, but I might not have anything to do with it so I don't really know what's going to happen. All right, let's look at this S&P yesterday because this was a really good example of patterns. This is a 15-minute chart. You'll see the Sunday night high up there, which was a 61% retracement of the high that we made on Friday. We then broke down to a double 78% level. We came down and made a new low on the day by one tick right at the 78% level, and the market rallied 2850, and it's still going. We're up to 2863, and the area we're looking at is 2866, as we say in the trade.<PHONE_NUMBER>. The Taz Profile Scanner is the most revolutionary piece of trading software that you will ever try. Wouldn't you like to approach the markets with confidence? As you begin your trading day, it's likely that you'll be faced with lots of decisions. In order to make the best decision, the first thing you'll need is a strategy that will help you minimize your risks. Whether we're in a bull or bear market, a good strategy is to have the tools needed to help you scan and analyze the markets before you trade. The Taz Profile Scanner instantly scans and filters over 2,500 global financial markets, such as stocks, ETFs, commodity futures, and forex. Headed by Steve Dahl, president of Taz Market Profile, the Taz Profile Scanner understands that in today's technological world, the use of top-flight software applications, automated trading algorithms, and technical analysis expertise is essential to successful trading in today's market. Whether you're looking at the trade matrix, the ETF heat grid, the market breadth, the landscape charts, or the many other features of the Taz Profile Scanner, this is a piece of software that will revolutionize how you look at the markets and set up your trades. The team at Taz has even put together a 12-part video series to walk you through every aspect of the Taz Profile Scanner, which you can find directly on the Taz Order page at TFNN.com. Sign up now for only $97 a month with a risk-free 30-day trial, so you have nothing to lose and everything to gain. See for yourself how you can harness the full power of the Taz Profile Scanner by visiting the front page of TFNN.com today, and you'll find the Taz Profile Scanner under the Services section. Remember, with a 30-day money-back guarantee, you have nothing to lose. Don't let another day pass you by without trying out this amazing piece of software that will revolutionize how you look at the market and how you place trades. Many of our new listeners have heard about the Tigers Den. The Tigers Den is a lively community where professional traders and investors can meet, exchange ideas and information in a comfortable, moderated atmosphere. Hear all of the TFNN shows, plus see all of the charts as they happen live and have access to archives of all of those charts. You can test drive the Tigers Den absolutely free for 30 days and greatly enrich your knowledge of these markets and how to make your money work for you. Details on the Tigers Den are on the front page of TFNN.com. Call now. Toll free at 1-877-927-6648. Internationally at<PHONE_NUMBER>. Okay, folks, we posted a chart of the hourly chart of the NASDAQ to show you this bullishness that we're seeing in the market. It's just absolutely overwhelming, folks. It's just, it takes your breath away. You'll notice here that the NASDAQ has reached the 38% retracement level in just a matter of a few hours as the Dow Jones and the S&Ps have gone up to these near 61% retracement levels. Whether that means anything or not, I don't know, but I'm just technically looking that there might be something that one would take an eye on if they're watching it. So let's just keep an eye on that. We have another one, folks, that is in the crosshairs and that is coming from across the pound over in the UK. I mentioned about Theresa May getting ready to do her thing. If we take a look here at the British pound, I wanted to just bring this up to you. The ABCD structure on this measures to 2012690. The low was 12688. We've rallied a little bit since that level, but that's not the important thing to look at. If you look at this chart and study it, it'll give you really a lot of information. You can see, going back to July, all of the ABCD patterns that were there that worked relatively well. Now, certainly we know that ABCD patterns don't work all the time, but far better than 60% of the time they do work. The question is, what you have to do is when they don't work, don't stand in front of it, and that's the really super key to pay close attention to it. But let's do something a little bit different today since I can try to keep this entertaining a little bit more than normal. I'm going to bring up the chart of the British pound, and we're really going to look at this together, folks. Let me get this up here, get this daily chart up so we'll be able to see it.  It didn't come up the way. I wanted it just a minute. Maybe we can get it right. There we got it. Hold on just a second. There we go. Get this up here and take a quick look at it. All right. Going back to last August, we made a low in the British pound. We rallied from the 126 up to 133. We came down and made a new low in January at 124. That was the head. The shoulder was up there. The shoulder, you remember, was at 126. Where are we at right now? 126.89. You'll notice that was the D point. 126.89. And that completed the ABCD. It also completes a head and shoulders pattern. And it's a perfect one. And the reason why it's perfect is your left shoulder over there in August was trading at 126 and change. The right shoulder is trading where boys and girls? Yes, Mr. Rogers says 126 and change. Not only that, we're down 12 days in a row. And that in itself is something very interesting. And let's just look at it just a little bit closer and we'll pull this up so we can see this. Maybe hold on one second. I have it here. I think I have it here. I think I can. I think I can. Hold on just a minute. What happened to it? Please don't tell me. I really spent so much time getting that ready. Are you joking me? Here we go. Here's what I want to see. Just get it up here. We'll take a look at it. Let's just look at this closely here. Go back to November of last year. You'll notice the market came down 14 days. Then had a really strong rally. Look at it in December. The market came down 14 days. Had a really strong rally. Look at it in February from January into February the 10th. The market came down 14 days and then rallied up. And here we are. We're down 13 days today and we're due for a rally. So we're right near these levels. So pay attention to the British pound. That number of the ABCD ended at 12690. We're trading a little above 127 now, 12720, whatever it was. Last time I checked whether that's going to be the bottom or not. I don't know. All I know is that it has a very interesting time parameter here to take a look at it. So we'll see. All right. Here's one other thing that I missed to talk to you about. Remember when I showed that transit chart, this one right here. I just wanted to get this up here to show you what it looked like. There's the transit chart from March the 5th of 2009. Now let's take a look at the Bradley model from March the 5th, 2009. Those of you that I had been doing the show about two years. And I said this was going to be the strongest short covering rally in the stock market since 1938 is what I said. This is really going to be big. Little did I know we were going to go to 27,000 in the Dow Jones. So the S&P was trading at 666 that day. I don't remember where the Dow was. I think the Dow was 6400. Yeah, the Dow is around 6400. So it's had a heck of a rally. Anyway, this was what it looked like. You'll see the three drive to a bottom coming in exactly on the date now. Some of these astrology things don't work, but when they line up like this, you pay a little bit of attention to them. You know, at least I think you should. That's just my two. I don't know if you folks find this interesting or not, but I thought because I had two emails about it, somebody had an interest in it. So I wanted to bring it to your attention to let you know what we're looking at here as we go through. So, okay, let's take the platinum is still holding up.  We did get down to the 810 level. That was the exact number silver still holding. Is platinum at 809 now? Did it get down to 809? Because that 810 was a low. I don't know if it's going to break down below that. So I haven't been able to check that. So Terry, I guess it is at 809. All right, so let's just, that might be failing too. But we don't know. So just have to wait and see one thing at a time. You know, sometimes they work. Sometimes they don't. That's the key to what you're looking at here. All right, I wanted to bring it to your attention. Another one that looks really interesting here that is pretty much already happened. Okay, Mr. Z is asking. I was in the Tigers in some sort. Please explain your purpose and restating that you did today. The reason why I brought this stuff together is because I'll slow down. The reason why I brought this stuff together was because some people asked me about the Bradley model and what I was trying to say. I don't do a very good job explaining it sometimes because it's a tiny bit over my pay grade like about 35 levels. But I know enough about it that if it matches up with the patterns that gives me a tiny bit of an edge. And all I was trying to do is showing historically what that edge was. Now, if I had time and I don't have time to do it in the show today, I could go back and show you 1982. I could show you 1987. I could show you 1974, the double bottom in October and December. So that's why I'm showing you. Someday, long after this old cowboy's gone, there's going to be a segment on CNBC and Bloomberg. And they're going to be talking about the astroharmonic cycles in the market brought to you by Harvard, MIT, Stanford, Renaissance Capital. Well, they won't tell you anything. But some erudite school is going to come up and say, look at the relationships between these planetary things that are nothing more than cycles than where we are. Andrew Lowe has already alluded to this in his book, The Evolution of Technical Analysis. He spent 50 pages in that book. The first 50 pages describing how the first technicians were astrologers. So to me, that means something. Whether it means anything, I don't know.<PHONE_NUMBER>. It's detailed commentary and a summary on the charts and videos that Larry sends out. And throughout the week, when warranted, Larry will send out via charts or videos or both the key markets that he is watching during the day. This will be up to the date active trading information that will help you in your daily trading. In Larry's first week alone, he sent out 25 charts, six videos and a full report to his subscribers in just one week. If you're a technical trader that uses patterns and retracements to trade, Larry's service Fibonacci 24-7 is something that you must try. Right now, new subscribers can get a full 30-day money back guarantee. With nothing to risk, sign up now to Larry Pezzavento's Fibonacci 24-7 by visiting the front page of TFNN.com under Trading Newsletters. The path of least resistance is David White's daily trading newsletter. And if you're looking for active trading ideas, then now is a perfect time for a 30-day free trial to this powerful daily trading advisory service. David uses his years of trading experience to offer his subscribers his trading ideas each morning in his path of least resistance newsletter. Using a combination of equity trades along with options, David keeps his subscribers up to date with all pertinent market information with intraday afternoon updates when warranted. Don't miss out on this great chance to get a 30-day free trial to David's daily newsletter, The Path of Lease Resistance, with no obligation to pay anything. David has been delivering solid recommendations for his subscribers recently and if you'd like to see the type of newsletter he delivers every morning, then visit the front page of TFNN and you'll find The Path of Lease Resistance under Trading Newsletters. For all the details and to start your 30-day free trial today, log on to TFNN.com now. I'll ship you a hardcover copy of Tom O'Brien's bestselling book, The Art of Timing the Trade. The Art of Timing the Trade, your ultimate trading mastery system. This software package is the fastest, easiest, and most accurate way to analyze stocks using Tom O'Brien's trading philosophy. It automatically provides you with Gartley and butterfly patterns, swing points, retracement levels, confluence areas, expansion targets, and the power law vector indicator with just the click of a mouse. The winner searches thousands of stocks each day and delivers a list of every Gartley and butterfly pattern it finds automatically. Just enter the promo code BOOK at checkout. This sale ends Memorial Day May 27th, so don't let it pass you by. For all the details and to save 25% and get your free book shipped today, check out The Art of Timing the Trade charts on the front page of TFNN.com. Okay, folks, we're back, and we have made the 809 level in the platinum. The big number we're looking at was 810, so it's 809. Well, back to the old 200-day crossing, the 400-day moving average, folks. We'll have to wait for a turn in that. That was sort of what we call a tongue-in-cheek technical joke, which I do very poorly at, so let's just keep that in mind. Also, we have this grain market's moving pretty good to the upside. If you're going to short something in the grain, folks, I would suggest you take a look at soybeans. It's the weakest of the group. There should be strong resistance in Christmas corn at the 411 level. Now, that's just a technical number. It's a 78% retracement number going back a long way, and so pay a very, very close attention. We've got as high as 410 today. The number is 411, so whether that means anything or not, you don't have to remain to be seen, but we've been up for nine days now. Even though it's a weather market, it still might have a correction of a penny or two, so pay close attention to it. We'll take a look at that. Now, the GDX is still selling way too much. The GDX is still selling way above the lows that were made on May 1st down at 2016. That's the one that we were watching for the divergence that we were seeing in the GDX, why we were buying this on Monday, because if you take a look at this, you'll notice that the buy was at 2043. We're trading at 2052 right now, and whether that's going to hold up or not, I don't know. I'm going to, if gold breaks below the 1267 level, I'm going to exit that and take a... because they're not turning up like they should, and that's usually a very bad sign. The crude oil is now broken a dollar from the 61% retracement level that we talked about yesterday. If you'll remember, that was at the $64 level. If this up here, you'll be able to see it very, very clearly. This comes from our good friend across the pond, Mr. AS, and it went right up to that number, hit it exactly, and then it's backed off just about a dollar a barrel right now. Whether that means anything, you know, we'll just have to wait and see. I want to check something here before we get farther along in the day, and that is to take a look at the... just one second, I want to double check the... hold on just a minute here. Boy, oh boy, this is not good. I want to check the silver. Just want to see how much silver is getting hit by. There's just no action going in these things, folks. Silver still...it still made a new low. We went to...well, made the same low. $435.50, we're now at $438. It's still in there. Just be patient and see whether it works or not. You know, some days it works, some days it doesn't. That's the bottom line to pay attention to, so just keep a close eye on that. Oh, what other one thing? Someone asked a question a few minutes ago here by private message by Skype about, am I still bearish the stock market? No, I'm not still bearish the stock market. I'm really bearish the stock market, so that's my $0.02 worth. $0.02 doesn't come with any change, boys and girls. That's the key thing to remember. All right, let's move on here just a little bit to a couple other things that some people have asked us about. And one of those, of course, has been the Hangsang Index. I wanted to bring this up to your attention. This is one of the things that really doesn't look very good, folks. This is...you'll notice here that we... this is a weekly chart. Excuse me, a daily chart of the Hangsang. You'll notice we went up to that 61% retracement. We stayed there for two weeks, where they were doing a little bit of selling. And look what's happened now. We're trading, but we're almost breaking $26,000. We're $27,200 as of yesterday. It gapped down again. So that was three weeks of a rally that was not... excuse me, a three-day rally that really, really didn't go anywhere. So those are the kind that you want to be very, very careful of from the long side. Ruby wants us to take a look in coffee, cocoa, and coffee and cocoa and sugar. Let's do it all, Ruby, because nobody else cares what we're doing here. So let's just get up here and take a look at the old... We'll start off with the sugar, the sweet. And as usual, we're going to go to our October sugar and get it up here. And I don't know if it's breaking down. It doesn't look like it's breaking. Oh, maybe I don't have enough data this morning. If it's below 12, it doesn't look very good, Ruby. Let's give me one second here to get this chart up so you folks can take a quick look at it. Here's the sugar. I don't know the last price, because I use data one day on coffee, cocoa, and sugar because I don't trade them very much, actually. Let's take a look here at the coffee. And let's just look up here at the coffee. Yeah, the coffee's the same way. The coffee has to... See, the platinum just broke 809, folks. Just one second here. Hold on just a minute. Everybody's coming to me at the same time. Just give me a second here. I'm getting notices that something's not right. Hold on just a second here. All right, just a second. I've got to do a couple of technical things. Otherwise, it's going to drive me nuts. My limit minder is going off on platinum because we broke 809. And whether that means anything or not probably does, because we're at 808. Anyway, if you're in that GDX, keep your stop working, and we'll see what happens. Okay, let's move on to the next one was the coffee. Here again, I'm not updated here, but my guess is if we're below 88 in the coffee, we're most probably getting ready to go down and break those levels out. You'll notice here on the coffee... Hold on to a second here. You'll see that it's got really strong support at 87. If we break below 87, that's about it. The cocoa looks a little bit better. Let's just get it up and then we will move on to some of these other things that the other folks haven't interest in. Yeah, cocoa looks pretty good. Well, I had a good day yesterday. I don't know what it's doing today, but cocoa still looks like it's got legs to the upside. So we'll see whether that's going to be the right thing or not. Let's just get this up here. And we'll take a look at the cocoa. And you'll see that it's still holding up relatively well. So of the three, here we are at 12. We broke 1270 down in the gold market. And we'll see if that's going to mean anything. It certainly does if you're long. The GDX... Let's just double check to see how the GDX is trading this morning. It was down a little bit, and I just don't know if we're down to the same level that we bought it at. Now we bought it at 2043. It's at 2049. We haven't taken out yesterday's low yet, but I'm sure we're going to, given the fact that we're having this move here in the gold and silver. So this looks like this is not going to work, but keep your stop in because you don't know. And even when you know, you don't know. Okay. The question that Mr. Z is asking us here in the room is that kindly show the December crude oil chart where 411 comes from. You bet you, my friend, I will do that because we were putting a little selling in there at 410. We never got filled. I don't know if we're down just a second, at least haven't yet. Oh, dear, don't tell me I took that corn chart out. I did. I'll post that corn chart right after the break.<PHONE_NUMBER>. If you're in the CD market and looking for a secure investment, the Tiger First mortgage program may work for you. The security for these first mortgages are building lots in the tax opportunity zone in St. Petersburg, Florida. The Tax Act of 2018 set up tax-free zones across the country where you can build and hold for 10 years and pay no tax on the profits, which makes these lots valuable. The investment is anywhere from $30,000 to $75,000. The interest paid is 7% yearly paid on a monthly basis. According to bankrate.com, the best rate for a four-year CD in the country as of February 20th is 3.1%. A $50,000 investment at a normal four-year CD rate of 3.1% would give you income of $1,550 per year, or $6,200 over the four-year period. That same $50,000 investment in the Tiger First mortgage program would give you $3,500 per year, or $14,000 over the four years. What should you prefer? $6,200 or $14,000 of interest on your investment. If you'd like more information about the Tiger First mortgage program, you can call me at<PHONE_NUMBER>. That's<PHONE_NUMBER>.  Now is a great time to sign up for the Gold Report. Tom O'Brien publishes his Gold Report every Monday morning before the market opens and covers a variety of topics, including Gold, Silver, Platinum, Copper, the XAU and HUI, the Dollar, Bonds, South African Rand, as well as more than 20 of the most actively traded mining equities. Start your 2018 off with a bag and sign up for the Gold Report today. The Gold Report is a long-term newsletter where the focus is on building real wealth through the management of a successful portfolio of gold stocks. For all the details and to start your subscription right now, visit the front page of TFNN.com and you'll find the Gold Report under Investment Newsletters. Funds, Investments, Stocks, Sp. UU or SPXS, Directions, Daily, S&P 500, Bull and Bear Leveraged ETFs, Direction Leveraged ETFs. An investor should carefully consider a Fund's investment objective, risks, charges and expenses before investing. A Fund's Prospectus and Summary Prospectus contain this and other information about Direction shares. To obtain a Fund's Prospectus and Summary Prospectus call<PHONE_NUMBER> or visit Direction Investments.com A funds prospectus and summary prospectus should be read carefully before investing. An investment in the funds is subject to risk including the possible loss of principal. The funds are designed to be utilized only by sophisticated investors such as traders and active investors. Distributor, Four Side Fund Services, LLC. The Bull Bear, Binary Option Hour. Next on TFNN. Hi folks, I posted the weekly chart of the Christmas corn December. That's new crop corn and I've mentioned that the 78% level comes in here somewhere between 410 and 411. The strategy here was to because we've had a really strong rally here right in the midst of this and believe me this is a strong rally that you don't have to risk very much here from the short side. I would do this for the Widows and Orphans Fund of course but I would certainly take a look at this from a risk-reward relationship here because we've got all kinds of various news out there today and the market is hardly higher at all and I finally did get filled at 410 level in the corn. I have a stop at 413. I'm risking $150 so I'm controlling $20,000 worth of corn for $150. It will be right or wrong I don't know but that's what I look at. I'm just looking at a very strong resistance up there. It's my opinion that there's strong resistance there so that's one of the things that we are keeping an eye on. Another one that's interesting today folks from an ABCD structure of course is the Treasury bond market. Do you have the British Pound going back to 1985? You know Mr. Z, I tell you what I'll do. Let me do this first and then we'll look at that British Pound going back that far to see if we're able to do it but I wanted to bring the Treasury bond, oh please tell me I've got this Treasury bond chart. Maybe not, shut the front door, I don't think I do. What happened to it? Nope, I don't have the Treasury bond chart, shucks. Alright let's just move on and let's try to get this chart up here for the British Pound for Mr. Z and for all of us to see because we'll all learn something together. It will kill a little time, make my job a tad easier so we'll look at the monthly chart and we're going to go back, oh my golly, my gosh, I think we have it. Yes we do, let's get her up here and you'll be able to see this thing going, let's move up here. Here comes, let me send it through the chart service first, my friend that way it'll be a lot easier and everybody can see it and we can discuss it. I don't trade monthly charts of course but we can at least learn something from it and it should be popping up here somewhere on the old, here it is, there we go. Here's the chart for the British Pound going back to 1985, that was the Plaza Accord back there folks. Bond was trading about 105, I was sitting there in Pismo Beach, California with a couple of traders. One being was Byron Tucker, Eddie Horowitz and one other very famous fellow and you'll notice that that 1.58 was really close to the 1.618 from the low in 1975 and Byron loaded the boat and I bought a little boat but he put up the boat and that thing took off like a stripe of deer. It moved 10 or 12 points before a person could even realize something was happening and of course the market went from 105 basically up to 150 before it had a correction down to 145 and then continued to go higher, making its final high back at 210 back in 2008 right before the big collapse and now we're down here what we think is a pretty major bottom in the British Pound.  I got a little bit of it but Byron was extremely bullish at that time and that was a really, really monster move. As I recall I was going through a divorce at that time and I was not in any mood to be doing any trading and I wasn't. I had just, well anyway, long story, you don't need to hear that. Okay, let's move on to a couple other things that I wanted to share this with you because I thought it was important enough last night to put in and that was this NASDAQ chart, the fact that you'll see this. You'll see the move that we had on the Friday, that Sunday night move was equal to the one we had on Monday but look at this move here folks. We were only able to make the 38% retracement of the high from Sunday night on the NASDAQ at least so far but that could be something that is relatively, relatively negative so we'll have to just do one thing at a time to see if that's going to work that way. All right, now let's see what else we have. Oh, by the way, those of you that want, I'm going to do a very, very, very many, many web program for half an hour for stockcharts.com. That's going to be tomorrow at around noon. If you want to just go to stockcharts.com and you can log on and I think you'll be able to watch it. Those of you that are here every day really don't need to do it because I repeat this stuff over and over again so you probably don't need to listen to it. I'm just going to show where some of these numbers come from and actually going to be talking about the gold market with blue horseshoe. Anyway, if you want to listen to that, you're certainly welcome. I am going to be doing a webinar here for TFNN here in the next couple of weeks where I'm going to do a one hour show going through the history of these numbers where they come from, how they get there and try to put some things in perspective with cycles and numbers to give you a better idea of some of the things that we're looking at here but again that won't be for a couple of weeks. Okay, we've had a question about the fang stocks again and one of them that we haven't covered too much in the last couple of days is Google and that's at a really critical level folks. If we take a look at the Google here, the last rally we had only went to the 382. If Google, I don't know where Google is trading right now but if it's not above 1185, that stock's got problems. Could someone check where Google is right now because I do not know and 1185 is the key level. If we get Google above 1185, then it's got a pretty good chance but if it doesn't, it's going to look pretty, pretty nasty and that's neither here to there. It's 1146, are you joking me? Wow and I was saying 1185 boys and girls, let me tell you something that's why this NASDAQ is so weak because these big stocks, the leaders of the pack, they're not leading. I don't know if that means anything or not but remember at the bottom back in 2009 it was the Russell and NASDAQ that led the market up for the first couple of years so I don't know if it means anything or not. All I know is that Google above 1185 would have been good and it's $44 lower than that. I don't want to be long on that stock so that's my two cents worth so we'll see. Someone's asking a question about the give up point on the gold is that GDX, if we get the GDX below 20, there's something wrong. We bought it at 2043, you don't have to risk very much that's why we were watching it. It was really good divergence, maybe it works, maybe it doesn't but that's the kind of thing that makes a ball game. Sometimes it's chocolate cake, sometimes it's vanilla cake but you just have to pay your money and take your choice. Right now the GDX is still, we're still in a profit. We bought it at 2043, it's trading at 2050 and considering where gold is, that's not a bad deal. Now if we get below the 2025 level we'll probably call Uncle on this and then wait to see what happens but that's neither here nor there of what we're paying attention to so pay attention to that. I'm certain you are or strive to be one of the best of the best at everything you do in life. It's the most common trait that we tigers and tigers share. If you're looking to become the best of the best when it comes to managing your money let me teach you to do what most wealth managers tell you can't be done, which is how to time the markets. I'm Steve Rhodes, author of Mastering Probability and for the last 12 months Timer Digest has been tracking my newsletter signals which have earned me the ranking as their number one market timer in the nation for the S&P 500 for the last 12, 6 and 3 months. Timer Digest also ranks me as the number one market timer for gold as well. The fact is markets can be timed and I'll teach you the exact set of tools that I use that has transformed me into one of the best at what I do. Sign up for Mastering Probability today by clicking on the newsletter tab on the home page of TFNN.com and get immediate access to workshops where I take you step by step how to use an extraordinary set of tools as well as provide great market calls to. Sign up today. If you haven't checked out the newsletters page of TFNN.com, what are you waiting for? All of the TFNN newsletters are informative, up-to-date, affordable, and must have for every trader looking to gain a competitive informational edge in today's markets. TFNN newsletters cover every aspect of the markets to offer you the very latest in market news. Plus, new subscribers get to test-drive our newsletters risk-free for 30 days. From all aspects of the markets, including stocks, bonds, metals, commodities, and tech, there's a newsletter to fit your needs exclusively from TFNN. Stay informed each day you trade and get the competitive edge that will help you stay ahead of the game. Visit our newsletters page by going to TFNN.com and click the newsletters button to enter the top of the page. TFNN.com Educating Investors Since 1984, Basil Chapman has been using the Chapman Wave methodology to advise traders of his expert market opinion. While originally hand-drawing charts from the late 1970s into the 1980s, Basil noticed that prices under most circumstances virtually always had a certain number of legs to the upside before declining sharply. Later, Basil found that computer software which included the standard market technical indicators enhanced the degree of accuracy in calling price turns as well as market trend calls. Thus was born the Chapman Wave sequence. Using the Chapman Wave methodology along with other indicators, Basil Chapman advises his subscribers of his expert market opinion each market day with his opening call newsletter. Right now you can get a two-week free trial to the opening call, Basil's daily trading newsletter, by visiting the front page of TFNN.com. Cancel at any time during that trial and pay absolutely nothing. Get your two-week free trial to Basil's newsletter of the opening call today by visiting TFNN.com. This segment is brought to you by Think or Swim. For more information, just click the Think or Swim banner on the front page of TFNN.com. Okay, we're back, folks. Going to wind up the show here. Key things to watch is the fact that, you know, we have been seeing a little divergence here in the NASDAQ. It's not acting very good at all. I still go by the prediction that the S&P is going to be somewhere around 2740 before the end of the week. I know that's only a couple days away, but that's just, you know, technical analysis from the chief seats here in Tucson, Arizona. I did want to bring to your attention the fact that the Treasury bonds are at a very critical ABCD level that we just hit this morning at $149. We're trading $149.10. That should be a level that holds some good support, I would believe, in the Treasury bonds. The $64 question is here. We'll put it up so you can take a look at it. This is what was done before the market opened, of course, but you'll be able to see the number down there was at $149.00. The low was $149.02. The number we're looking at was $149.04. And remember, I'm very bearish long-term those things. Well, I mean the interest rate. So whether that means anything or not, I am not sure. I had a couple questions. Am I shorting the corn up there to December corn? Yes, sir, I did. I sold December corn at $410.00 and the reason why it offered a very, very low risk. And that's really what I was looking for. Now, whether it's going to work that way or not, you know, I really don't know. But let's just double check to see where it's trading. I haven't seen any. And we're trading at $411.00. So it hit the number. There's $411.00, is the 78% level. We went short at $410.00. And we got a stop at $412.00. So we're risking $413.00. We're risking $150.00 on that. Whether that happens or not, I don't know, but we'll have to wait and see. So live every day in an attitude of gratitude and may God bless. We'll see you on the flip side tomorrow and do something nice for someone, folks. It has a lot less than you. It's very, very important to give back. It's the old payback. Make it simple.


because we still have some slides to go through actually we still have the majority of slides to go through so I should stop talking in detail and just rush through them but I think it will be fine so first off integration testing so integration testing is defined as an individual software module are combined and tested as a group so hey integration testing is something that you do when you have like software which depends on multiple modules right I have a website this website has for example a database and it has the ability to call out to other websites and head there's different ways of doing integration testing the way people usually do it is big bang so they compile the software and then they see if it works this is not the best way of doing integration testing but it is a form of integration testing right just compile your your website or just put the software of the website somewhere and then just hope that it works you click around a little bit and if everything does what it's supposed to do then you say well it works so integration test complete there's a there's a different approach to that and that is bottom up so you test the smallest components first and then test the combination of them and this would be when you for example have a website which has a database and then you first test if the database is working and then you test if the website connection to the database is working and then you test the other parts there's also the top-down testing and top-down testing is going the other way around so you integrate integrated modules are tested and the branch of the modules are tested step-by-step until the end of the related module and so you view software more or less as a tree and so at the bottom you have the you have the smallest modules which then combine into bigger modules which then combine into the whole software package and so big bang just compile it see if it runs bottom up test the leaves first and then work up the tree while top-down testing is kind of do a big bang compilation test and then look at the individual components and test if they are working unit testing is the is the tests which often are written and are kind of the best way of testing had a goal of the unit test is to isolate each part of the program and show that individuals parts are correct and so that means that a unit test provides a strict written contract that the piece of code must satisfy and so this is usually done on the level of a function or an object or a class and so if I write a function in R then I generally write a a couple of tests to see if the function does what I expected to do right if I give a certain function 10 as an input and the goal of the function is to kind of multiply the input with 50 then of course when I tested I give it 10 and then I expect the output to be 500 if I give it 20 I expect the output to be a thousand and so you just write like 5 or 10 of these tests to make sure that the software that you have written is correct and then of course once I have all of these tests in place then I can muddle inside of my function as much as I want but these tests are there to help me to make sure that when I change code that when I input 10 it will still give 500 as a result so it gives you very it gives you a very high level of confidence that the software that you are looking at and working with is actually correct and this is very important especially in like academic software that at least the individual functions that are provided by a programmer are tested in a way that you get some confidence that when the next version comes out that this version will kind of behave the same way as the old version right if originally you did your correlation and the correlation turned out to be 0.9 right then if you update the version of the software to the newer version and all of a sudden your correlation changes from 0.9 to 0.7 then you know that they didn't have any unit tests in place and of course this doesn't give you very much confidence that the software will be stable across different versions of the software and ideally each test case is independent from the other tests but of course this is this is not something that you can always guarantee but it is it is the best if you can guarantee that so unit testing has a lot of advantages it finds problems early hey you write a thorough set of tests and it forces the programmer to think about which inputs there are which outputs there are which errors can occur and thus more crisply define the unit test behavior had to make sure that if I write a function and then in some cases you would even write the tests first and then you would write the software implementing the test it is it is one of the massive advantage of unit testing and I've run into this multiple multiple times during my career is that it facilitates change if you don't have unit tests then changing a single line of code could change the output of the program completely and that's not something that you generally want because these things only kind of show up when people start using the code and complaining like I calculated it using version 1.1 and I had a very significant effect and I'm using version 1.2 and all my significant effects are gone what's going on and so by having this kind of harness around your code which says no if this is the input then this should be the output and this kind of allows you to change the code change the working of the code very easily one of the other advantages is that it simplifies integration and by testing the parts of a program first and then testing the sum of its part had the integration tests that you are running are becoming much much easier and the test itself so when you write a good number of unit tests then they provide a kind of living documentation of your code that you are writing so the test will kind of tell you well if I have this input I expect this output so the relationship between input and output is more or less caught in the test without having to write a lot of documentation for it of course there are some disadvantages to unit testing and there's the decision problem you cannot evaluate every possible input and every possible output so you have to limit yourself to to what you can test it is not an integration test right so for example if you have a piece of software which functions together with a webcam or scanner or some other input device for which the input can change had there is this this problem that it could work for your webcam but someone else's webcam might not work with your software because of the fact that it speaks a different dialect and there there's this another problem is this combinatorical problem that for every line of code you write you have to write like three or five lines of unit tests and that is of course very expensive and very prohibitive in a real-life situation and there's the problem with realism and you have to come up with realistics and useful tests has so just having a function which multiplies things by 50 of course you could write a whole bunch of unit tests but these things are not really realistic and of course it platform differences are really hard to put into unit test because if you are unit testing your software under Windows and then someone else uses your software on the Linux it might be that the unit test starts failing on their Linux because of differences between the operating system so to kind of prevent that is something called regression tests so regression tests verified that the software previously balanced and tested still performs correctly even after it was changed or interfaced with other software as a regression tests are in essence a kind of unit test had because they specify with this input I want to have this output and this is so as an example during my PhD I wrote multiple QTL mapping software routine and this multiple QTL mapping software routine was originally written by my professor who wrote the code in the 1990s so the first thing that I did when I got his code was run his code on all kinds of different inputs to see what the outputs were and I then wrote tests that said if this is the input this should be the output and only then do you feel confident enough to start changing the code especially when you're dealing with code like C or C++ have where a single change like adding a star somewhere or changing a line of code can have like massive consequences to the whole algorithm but by having regression tests you are certain that the software is fundamentally the same as the old version so that you're not introducing bugs one of the reasons why people are so happy about regression tests is that if you find a bug in your code you fix the bug and then you write a test that exposes the bug so that next time that you're changing the code you are less likely to reintroduce that bug because this bug is being kind of tested for so every time that I compile my code I run the test and the test will tell me well the bug that you had in version 3 did not reoccur so it's kind of putting a harness around the whole software and so unit test is generally based on a single function or a single module or a class while a regression test is based on the performance of the whole software right so if I run this software using this input I should get that output and this this is the correct output and it should never change no matter what I change in the code alright so all of these tests boil down to something which is called test-driven development head so test-driven development is a software development process had the requirements are turned into specific tests then the software is improved to pass the new test so the way that test-driven development works is that you add a test right so you're saying that well when I give this input to the program it should output that I run all the test and then I expect a new test that I added to fail right because I did not put this functionality in the software yet then I write code which implements the desired behavior I run my test again and then I refactor the code as until it passes the test and then I start off from one so I add a new test I run the test I expect the new test to fail I write code implementing this test I run the test again and then if it passes the test I continue back at one and so this is this is called test-driven development and it's very different from things like agile development or other development strategies in in computer science but test-driven development is a very good way of developing software because it it builds up the test suite alongside the code that you are writing alright so documentation is one of these things which is often forgotten in scientific software so I just wanted to kind of highlight it that it's very important to do documentation so documentation is text or illustrations that you get with computer software it explains how to operate it or how to use software and there are many different types of documentation so the first type of documentation that you get is the requirement document so the requirement documentation it states the identified attributes capabilities characteristics or qualities of a system for example a requirement might be my piece of code should provide a p-value showing the significance when I provided with two groups so if there is a significant differences or no and of course this is just a requirement so it's written upfront before any software is written and then next to the requirements you generally have an architecture document or a design document or documentation document which which specifies the relations of the environment and the construction principles to use in the design of the software component for example a requirement document might state that it it should be able to connect to a database but then the architecture document will state that the database being used is progress QL version 7.1 or it is my SQL version 6.3 you have the technical documentation which is the documentation of the code the algorithms the interfaces so every function that you write and normally you write okay so the first input parameter to this function is a vector which contains at most a hundred thousand numbers and the second parameter is then a scaling factor which is applied so it it very fine grained and usually is written into the code or above the code what the code more or less does and what the different parameters of a function do or what an API does and for example the Twitter API has somewhere a technical document saying that well when you call the add friend function in Twitter and then what should happen is that the friend get added to your friends list meaning that you can now send direct messages to and from then you have the end user documentation which is generally the manual that you get with your software so that's something that if you are writing code for other people is more or less the PDF file that people will read through and will tell them how to use your software and then in academic science there's not something like a marketing document but in in if you are programming for a company then there will be also a market marketing documentation and this tells the marketing department how they should sell the product and it contains an analysis of the demand so if you're developing for example a website which sells stuff and then of course there will be a marketing document saying that well how do I sell my my software that sells products and what is the demand for having a software package like that and so different types of documentation and the most important one is generally the technical documentation combined with the requirements and of course if you are planning on outsourcing your entire programming job to India you will just be writing requirements because you will be communicating with someone in India who does your work more or less but you will say well I want to have a function which does this and this and this and then hey you specify in the requirements what it should exactly do and then the guy from India will send you a piece of code which generally has some technical documentation and then you have to write the user manual so that's something that people do so our packages to all of this so an R package that you install have provides you with a type of encapsulation so it defines what your software will do and what your software will not do the R package because of the way that the R package structure will have examples and tests in there and so had the examples will for example be at the bottom of the of the documentation but these examples are also tests for the software and so the documentation that the R package provides is generally technical and end user documentation there are examples in the documentation itself and these examples are used as tests when you run your package or when you when you compile your package so when you make your package from code it will run all of the different tests and it will tell you that or it will run all of the different examples and then if the examples work and then this is kind of a guarantee that the software that you wrote will work all right so last section of this lecture is going to be how do you create an R package so if you are programming in R then you generally want to at a certain point have other people use your software right you can create software for yourself which is really nice but in the end you want to write a publication saying I have this piece of software for bioinformatics and I want to submit it to a journal and then the journal requires you to make your document or your your code available to other people and so here I will create very quickly a package and this package is called your package name right so for example we saw the pre-process core library so had this package is called pre-process core but here we will make a package which is called your package name which is of course not the best name for package but it's a very clear package so if you are ever needing to make an R package then you do have to change your package name by the name of your package and so in my career I've now written like four or five different R packages so one of the R packages that I collaborated on is the RQTL package I've written a CTL package for my PhD so you can install it by just doing install the packages CTL and I've written also a package called Fino2Geno which allows you to estimate genetic makeup based on phenotypic characteristics but here we will create a new package this package is your package name and everywhere where you read this just read okay this is the name of the package that I want to make so first when you do an R package the thing that you have to install is the R compiler because you're going to create a package R itself the interpreter is not enough you need the compiler because you are going to create a piece of software which is more or less a binary bundle which you then give to the repository and the repository will then distribute this binary bundle to all of the other users of your package so hey you have to install the R tools package which you can do from here when you are under Windows and this is just a a package that you download you have to make sure that the version you download of R tools is matching your version so I am currently using R version 4 so that would mean that I need to use the R tools 4.0 it's not on the list because this is an old slide but if I would be using R 3.1 then of course I needed to use R tools 3.1 so when you when you go and click on this link make sure that you first check which R version you have installed and if you want to look at the PDF files so if you want to create the PDF files that the end user will see you also need to install mixtex when you are under Windows if you are under Linux then you have to install a latech compiler but if you're using Linux and then I'm assuming that you know how to install the latech compiler for Linux which is generally just sudo upget latech or something like that but under Windows you need mixtex and this is a big thing mixtex is like two or three gigs big so it's a big download but you install it once and then you can do all kinds of funny stuff with PDF files and the R thing needs it because it builds the end user documentation during your compilation all right so when you have all of done all of that then the first thing that you do to create a R package is create a new directory on your desktop so this directory on your desktop or wherever you want to put it this will hold your entire package and the package that you are making needs to follow the official guidelines of the R structure right so you can click on this link and let me click on the link for you guys can I show you guys this do I have a window yeah I have a window so Firefox there it goes so what I'm going to summarize in the next 30 minutes is this whole document which is around 600 pages if you would download it in PDF so all of this stuff which is written in here I'm just gonna very quickly summarize for you guys into like a 30-minute thing so I'm hoping that you get the gist of it and but there's a lot of guidelines that you have to adhere to but the basic guidelines are relatively simple of course so we created a new directory and of course this directory that we create is called your package name right because that's the name of the package so the name of the folder that I create should adhere to the name of the package that I'm creating all right so then the next step is to execute the command line so if you're under Windows you just press the Windows button on your keyboard and then you type CMD and then you see CMD.exe and this is Windows 7 so you might have a slightly different view but when you type CMD you can get the Windows command prompt and then you just press enter and then it looks more or less like this or at least in my version of Windows it looks like that so you can see here that I'm at the C drive in users then user2 which used to be my username nowadays my username is just denny but so this is what more or less what it looks like all right so because I've created my package on the desktop in the CMD window I have to type cd desktop and then it will go into the desktop directory that I have and then the first thing that we're going to do is check if the package that I just created just this empty folder called your package name if this is a valid R package so to check if your if your package is a valid R package you can do RCMD check your package name so when I execute this command in the command line it will look like this right so I'm here in C users user2 I go into the desktop folder and then I check my package so I do RCMD check your package name right so and then it says I'm using this log directory I'm using R version 3.1 and then the platform is 64-bit windows and I'm using the char set E-cell and then it will say checking for a file your package name description no and then it will quit right so there's an error within your package files and folder structure need to match the official guidelines and the official guidelines are that if you have a package there has to be a file called description without any extension so it's not description.txt no it's just a file called description and it this has to be a text file and so I'm going to create that so I'm going to create a new empty file called description no txt at the end and inside this file I have to add the following so I have to add package double point space your package name version double point and then I have to give a version according to official sem for coding which means that zero point zero point zero minus one is the official version when did I make it well the first time that I did this for 16th of January 2017 the title is just the human readable title right so it's called my package I have to specify who the author of the package is which is me so name of the author and then the email address between the larger smaller than greater than quotes then I have a maintainer in this case the maintainer is me as well and then I have to add the depends so the depends tells the compiler that I need are and I need to have are at least at a version which is higher than or greater than three point zero and then there's the description so the description line is my first our package and I have to add a license and the license you can choose from a list so in this case I choose GPL 3 but you can also use the MIT license or the BSD license or whatever license you want to use to kind of give your code to other people alright so we've now created this file right so we again check the package so again we execute the command our CMD check your package name and it will then say that I found this description file right so it will say okay so that's there and then it will just go through and it will check all of these things and then it will say there was one note right packages without our code can be installed without a namespace file but it is cleaner to add an empty one alright so creating an our package is relatively easy like it's just creating a folder with the name of the package adding this description file and then it is already a perfectly valid our package except for the fact that there's a single note and that says that it's cleaner to create an empty file called namespace well so let's create the namespace file so the namespace file again is the same as the description file it is not allowed to have a dot txt at the end so there's no file extension to this file and the function of this file is to load external dynamic libraries so it's there to link to other DLLs that you might need or under Windows or under Linux this these files are called .so files and under Mac OS X they are called dilips so it the function of this file is to load external libraries for example my package is going to use OpenGL or my package is going to use some other package that I want to give it the other thing that this file contains it is it contains a list of all the functions that you are going to provide to the user right so the thing that we're going to do is we are going to create a new empty file called namespace and inside this file we're going to add the following so we're going to say export my first package function right so now I'm I'm I'm I'm promising the R compiler that within my package there will be one function for the user to call and this function is called my first package function okay so let's create this file and of course I can run RCMD check and then RCMD check will give me an error saying that there is no function called my first package function and that is true so I skipped the step of checking it and then giving you the error but if you would check it then you would get an error and the error would say well you need to provide this function that you just promised to provide to the user and so inside the folder that I had so the your package name folder I create a folder and this folder is called R with a capital letter and so this will hold all the R code file all code in these files should be function so you're not allowed to just have like set working directory in there no every every line of code in these R files should be encapsulated by a function statement yes so in the way that I do it normally is I have one file and this one file contains one function which the user of my package can use so this is the way that it looks so and of course I have to create this R code file so I'm going to create a file called my first package function dot R and this is my first package so I add a header which I always do yes I add a copyright statement when was it written have when when who wrote it and who owns the copyright and then within this funk and within this file I'm just going to create an empty function so it's a my first package function which is a function which does not do anything it doesn't take any parameters and then I save it and then that should be good enough right empty function should work why not so let's R CMD check the package again and now you see that there is a an error right so there is an undocumented code object I hope you can read this by the way so it says all user level objects in a package should have a documentation entry see the chapter writing our documentation files and the writing our extension manual so then you have to pick up this like 600 page manual you have to go through the chapter that they are describing and then you have to figure out what they mean but here we see that R does not allow you to write a function for a user without providing documentation and of course this is very good not all programming languages force you to do that but R really forces you to write documentation you have to write documentation otherwise you cannot distribute your code to other people alright so where does documentation live in an R package it's lives in a folder called man for manuals and so I have to create this folder this folder is called man and this man is written with all small letters again here I normally have one file one documentation of a function so inside the man folder I create something called my first package function rd and the rd file extension stands for our documentation file so the the package now looks like this I have a description I have a namespace file I have a folder which is called our where I have my first package function r and I have a manual folder where it says my first package function rd so this is an empty documentation file so I open up the documentation file and then I just copy paste this in right so this is more or less the template which allows you to document a function so the function has of course a name a function can have different aliases because you can have the same function live under multiple names and then it has a title so it has my first package function minus and then the short description of what the function does it then has a description field which contains the long description and then it has a usage section and the usage section is just how to call the function and in this case it's my first package function and it doesn't have any arguments so no parameters then you have to specify all of the arguments but since there are no arguments I just have a little to-do here saying that add the details and then in details you have a to-do saying add the details of the details so normally the arguments describe all of the arguments that go into the function one by one and then the details tell what happens and the value here so the value section is for the return value so if your function returns something then you can describe what it returns in this field and then it has to have an example section so the example section of course here the example is just executing the function and since the function has no parameters and doesn't return anything it's kind of silly but the example needs to be there and then at the bottom I have to tell that this is a method so a function so I say slash keyword methods all right so now let's see so our CMD check your package and then it will do the same thing again so it will run all the checks and it's okay so that is the minimal our package that you need so the minimal our package contains two folders four files description file namespace file at least one our file containing a function at least one manual file documenting the function that you have and that's about it so that's that's what the 600 page manual describes of course there's a lot of other things that you can do so but this is more or less what you want to do so step one is learn how to build an RF package step two no one knows what it is but step three is profit because now you can sell your software to other people or you can give it away for free if you want of course you still need to install your package right so you have to install it in your version of our and make sure that it does what you want to do so you can do that using the RCMD install command so you say RCMD install your package name and of course this needs to be capitalized the second and but then it will install the package in our and then you can open up our and of course you have to test it right so I open up our then I do library your package name and then I call the function and then I look at the help file and then this is how the help file looks when I open it up in our so that's that's that's how to create our packages so this allows you to well give like hundreds of our functions to users and hey you could ask money for it and this actually got me a lot of publications a lot of people do not know how to create our packages so a lot of people in academia they write our code I'm specific for their little project but then at a certain point they're they're ready and then they know don't know what to do with this code and of course when you have code and then of course the analysis that they do is something that they publish in a paper but then they are looking for someone like me and they give their code to me and I make a package out of it and then we write a paper saying that oh we have this wonderful new algorithm which allows you to do X see our paper that we published and now here is the code that you can do this so I literally have like hundreds of citations for doing nothing else than taking other people's code well not taking it but collaborating with people helping them put their code into an R package and that is a very valid way of finding publications and so things like BMC bioinformatics and they have this really nice format where you can kind of write like a little paper usually three to four pages here where you just describe okay so we have this new new algorithm does X see the see the see this nice paper that we wrote about our analysis and this is the software that belongs to it and so we're publishing the software independently and this as a scientist can can bring you a lot of a lot of citations because if people use your software they also cite your software and so you can write like a very small paper which will rack up if you're lucky hundreds to thousands of citations all right of course when you create a package you also want to generally provide some example data right like just creating a package which has a single function which doesn't do anything that generally doesn't fly because generally you want to have an example in there so that people can run the example and see what happens so generally you would not do a random data matrix in your package but you would provide something like a little piece of data which you've measured on your fish or on your mice or on some other animal or just the analysis or the soft or the data which is underlying the analysis of the nice publication that you wrote first so data lives in a folder called data all small letters and so for example if I want to save data from our then here I'm just making a random matrix so I have a hundred rows ten columns filled with random uniform numbers and that I want to save this and I say save random matrix the file that I want to save it to is in the data folder and it is called random matrix dot our data and here you have to be careful because they are and the D need to be capitalized the other three letters need to be small so this is very strict if you if you don't adhere to the exact guidelines it will throw errors again everything that you provide to the user needs to have a documentation file so if I am providing some data into the data folder like random matrix dot our data I have to provide a random matrix dot our defile right because there has to be documentation of everything that you give to the user so let's create a documentation file so in the manual folder I create random matrix rd the name of the data set is called random matrix the alias is also random matrix the doc type in this case is data because you have to tell our that this page of the PDF document needs to be generated a little bit differently than functions and then you just say well the title the description the usage is always the same it's just data random matrix then the format describes the format for example this is a matrix which has 100 rows 10 columns and it's filled with random data the details it was generated by me on January 1st or something like that and then the references so of course when you have data which it was generated or collected by other people you want to cite their paper and then again you need to have an example the examples are tests so had this example will be run every time that you check your package and it just loads in the data in this case so data random matrix and then the keyword here you have to provide a keyword and the keyword here is data sets so you have two different keyword types and in our documentation file one of them is methods the other one is data sets all right that's how you provide data with your our package of course and the examples in your manual files are run every time that you compile your package but we can have more tests we can add additional tests to our package if we want to make sure that we test every function that we provide to the user and make sure that every function that we have functions in a way that we want and so we can call create a folder called tests and then all of the our files in this folder will be executed automatically during the building of the package and so I create a folder called tests and then for example I add a file called test underscore 0 0 0 1 dot r and this file will contain a test and so for example it could load the random data matrix it could then call the function that you provide to the user and then test if the result after running the function on this data is for example five right that could be one possible and so the test folder can contain additional tests so how do the test files look so again test 0 0 1 dot r copyright statement and here I made a test which fails around 20% of the times and so it's not a good test since it randomly fails but had the thing is is that a test is done like this so you could have if the random number Jedi generate is higher than 0.8 then I just call stop and so this is the way to test so tests have stop functions if a test fails so when a test fails it should call the stop function with a certain error message and of course the error message would be better if it would be unsuccessful test 0 0 0 1 dot r right because that that makes more sense in a way and of course tests should be meaningful so you should test that your function does something on the data that you provide all right so some common mistakes when you are building our packages make sure that r is not running when installing a package because your code might not update so if you have your R window open close your R window when you do our CMD check and when you do our CMD install always check your packages before installing so if you do an RCM the install your package name you should first do an RCM the check your package name and you have to add enough testing so use the documentation for quick and simple test and a test directory for more thorough testing right so if I have a test which runs a little bit longer than it goes into the testing folder if I have a very basic test just making a little plot which is very quick and then I will put that into the documentation and of course the documentation is also there to help the user understand how to use your package all right that's it for today so I told you about files about different types of files about the structure of files naming conventions like file names headers and variables no I didn't tell you about the naming conventions why didn't I tell you I think I was working on the so I might have removed the naming conventions from the from the lecture so I should test the exam make sure that it's not in the exam either and then I told you about code like what is the structure of code what are what is the difference between the unit test the regression test what is test-driven development I talked to you about documentation different types of documentation and I told you how to create your own R package and make lots of money or at least get a couple of publications for helping other people make an R package and of course other people could make their R package themselves but since you have to read through this 600 page document not a lot of people find that attractive and they say well now I'm I'm more of a biologist so hey I do write some code to do my own analysis but I'm not a bioinformatician so I'm not going to publish my code or anything but hey you can get a lot of citations for publishing code and helping other people make a good R package and this will will help you rack up citations in the end alright so that's it for today are there any questions or other things chat has been pretty quiet the last 50 minutes so I think most people are sleeping which is okay but if you have a question ask now or could you upload a PDF with the naming convention slides um yeah I could do you want to have questions about it on the on the exam then as well I think I I think I dropped a couple of slides because I was worried about running out of time because the the R the R package is it's just a very brief snippet of what we do during the R course so during the R course there is how to add C code or for trunk code to your R package and how to optimize and how to call C code from R and these kinds of things Jan gets bonus questions well I think Commander you get a bonus question as well but yeah no I will I will upload the naming convention slides I have to look to the old version about the homework from last week yeah well the homework is part of the lecture so there might be questions about that so I did just be aware you can upload it after the exam interesting we did not cover yeah well there's there's like it's just like I have this whole lecture series which I made and I kind of pick and match and that also based on what you guys want right so if you guys say well we really want to have a lecture about topic X then that is always something that we do it's the same as with the R lecture I generally try to keep two of the of the time slots free so that people can come with their own data we had a really good our lecture being billed around someone who did field experiments so there wasn't anything about field experiments in the R lecture originally but then people wanted to know how do you analyze field experiments when you have different blocks and different like ways of doing that hey if you have different field designs and what is the best design and these so we just added a lecture about that and hey so if you guys have a topic and I think I said that during one of the first lectures as well if you have a topic that you really want to know more about then just let me know and I can just make a lecture about it and then it just goes into the lecture slide folder and next year depending on who attends the lecture or if there's more of people from PQM or if there's more people from fish or IRRM then then we can do that so let me quickly tell the people on the phone that I don't have time all right so they're not no one on the phone yeah yeah so if you have a topic that you think that that's something that I really really want to learn and like I totally missed it during the lecture series then just let me know we still have like until a week before so we probably still have like four or five time slots let me quickly count it on the calendar so next week let me also look at the lectures that we have so this is documents PPTX biofematics so next week we will have literature literature and literature management so how to use the computer to go through literature and do like tests based on literature and stuff and then we have the summary lecture afterwards and I am still hoping to hear back from Misha to that he can give you a short introduction into his topic right I told you last time or the time before that I asked him to make a short kind of overview lecture of what he's doing using raspberry pies and measuring water quality and all of these things but I have to ask him if he's done with that so next next week will be literature management and then the 14th lecture will be the summary which is on the 25th and then the 4th of March is the exam I think right let me see 4th of March I think so yeah yeah so if you want to have a lecture then send it to me this week because then we will have to change the lecture for next week I think the literature management lecture is actually quite short let me quickly look at that oh the literature management actually has 115 slides so that's a really long lecture for some way oh no no it also comes with the with the summary so if I don't count the summary then it is only only only only 62 slides meta barcoding or the field stuff would be cool yeah sure we can discuss a little bit about meta barcoding so I have 62 slides which is one and a half hours I would say so that means that we have 30 minutes left so then I have to scooch a little bit but that's possible and the the overview lecture is is relatively short because I just go through all the lectures and just say well this is important that's important and I'm definitely going to ask about this about the exam but the literature management lecture is yeah it's not the most important one I think so it just talks about like literature and journal impact factors and web of science and Google scholar and put math and all of these things but yeah if you're interested in like the field research then yeah we can talk about field examples and talk about like what is the difference between a Latin square design or an interwoven loop design and how does this relate to these things are to the analysis that that's perfectly fine all right I will at least stop the recording so everyone a little thank you for listening and we will see each other next week