嗔秤戻幣�哉膵�云利匈嬉蝕湊蛸賜�塋床四衲���萩晦編報炎嘔囚^泡仟 ̄云利匈�《超噌�殻窟�嵌虜隆輓麈觚翹瀘卉韮�仍仍�。� 烏御危列
浪慕利 卦指云慕朕村 厘議慕尺 厘議慕禰 TXT畠云和墮 序秘慕杏 紗秘慕禰

VB2008貫秘壇欺娼宥(PDF鯉塀哂猟井)-及51嫗

梓囚徒貧圭�鮗� ○ 賜 ★ 辛酔堀貧和鍬匈��梓囚徒貧議 Enter 囚辛指欺云慕朕村匈��梓囚徒貧圭�鮗� ● 辛指欺云匈競何��
!!!!隆堋響頼��紗秘慕禰厮宴和肝写偬堋響��






                                                                                                           135 


´´´´´´´´´´´´´´´´´´´´´´Page 158´´´´´´´´´´´´´´´´´´´´´´´

136       CH AP T E R   6   *    L E A R N IN G   T HE   B AS IC S  O F   OB J E CT OR I E N T E D   P R O G R AM M IN G 



           Understanding Currency Spreads 



           This chapter¨s sample application deals with exchanging different currencies。 Did you know  

           that when you exchange one currency for another�察�you never need to pay a processing fee�拭 �

          Whether you are exchanging currencies at some airport or on an exchange�察�you should not be  

           charged any processing fees。 It makes you wonder how people earn money by accepting one  

           currency and then giving out another currency。 The answer lies in how currency exchange works。 

                When dealing with currencies�察�you are always dealing with currency pairs。 This is different  

           from something like buying a stock�察�when you are dealing with only that stock。 A currency by  

           itself is actually quite useless。 Suppose you have a 100 in your hand。 What will it be worth one  

           year from now�拭�The answer is simple�此�100。 Yes�察�you can argue that the 100 will not buy as  

           much next year�察�but that would be plicating the issue with concerns not related to this  

           discussion。 The fact is that if you have 100 dollars�察�100 yen�察�100 euros�察�and so on into infinite  

           time�察�you will always have 100 currency units。  

                Currency exchange involves paring one currency to another currency。 The value of a  

           currency is what one person would give in parison to another currency。 

                Foreign exchange ��forex�� market traders make their money by dealing in spreads。 Spreads  

           are tricky because�察�as the exchange rate moves up or down�察�so does the spread。 For example�察 �

           hotels always give you horrible rates�察�and you may wonder why they are ripping you off。 But  

           hotels are not ripping you off�察�they are hedging themselves on the safe side。  

                Consider the following example of a spread�此�



           EUR。USD           1。4686             1。4687 



                The EUR。USD term means you are converting one euro ��EUR�� into a number of US dollars  

           ��USD��。 The first number is the bid�察�which means that a trader is willing to give 1。4686 US dollars  

           for every euro。 The second number is saying a trader wants 1。4687 US dollars for every euro。  

           Essentially�察�the buyer and seller are 0。0001 US dollars apart。 The exchange spread is normal�察 �

           and it moves around because some might be willing to sell at a lower conversion rate�察�and others  

           might be willing to buy at a higher conversion rate。 

                Let¨s say one day you enter a hotel in Austria on a skiing holiday。 In your hand�察�you have  

           1��000 US dollars�察�but Austria belongs to the European Union ��EU��。 To buy anything in the EU  

           zone�察�you need euros。 Being clever�察�you decide to go on the Internet and check out the going  

           spread。 It turns out to be the one you¨ve just seen。  

                Standing in the hotel foyer�察�you have US dollars in your pocket and you need to buy euros。  

           Thus�察�you will need to go in the direction USD。EUR。 The way to do that is to divide one by the  

           posted spread values。 This calculation gives the following conversion rates�此�



           USD。EUR           0。6809             0。6808 



                The numbers are a bit wrong�察�because the buyer is willing to give a higher value than the  

           seller。 Granted�察�this happens at times on the forex markets�察�but here�察�it¨s because we used a raw  

           conversion of EUR。USD。 The market might be a bit higher and lower�察�but generally speaking�察 �

           you have a feeling of what to expect。  

                You advance to the hotel desk�察�and you kindly ask what the going rate is for US dollars to  

           euros。 The concierge gives the following exchange rate�此�


´´´´´´´´´´´´´´´´´´´´´´Page 159´´´´´´´´´´´´´´´´´´´´´´´

                        CH A PT E R   6   *    L E A R N I N G   T HE   B AS IC S  O F   O B J E CT OR I E N TE D   P R O G R AM M IN G 137 



USD。EUR           0。65120 



EUR。USD           1。5010 



     Doing your calculations�察�this rate doesn¨t seem right。 The hotel is giving you 651。20 euros  

for your 1��000 US dollars�察�but the forex market clearly says the traders would be willing to give  

you 680。91 euros。 The hotel appears to be ripping you off by approximately 29 euros。 But the  

hotel is not ripping you off�察�rather�察�it is hedging its risks。 The spot conversion rates will go up  

and down during the day�察�and the hotel is not in the business of exchanging money。 The hotel  

is in the business of giving you room and board。 The hotel managers need to make sure that  

when they go to the bank to exchange your dollars for euros�察�they don¨t lose money in the  

process。 They ensure this by giving you less money。 

     Whenever you exchange monies�察�you should always look at the spreads。 Sometimes the  

spreads are good�察�sometimes they are horrible。 I have found the best spreads are at the banks。  

It is a bit more work to get money from your home bank�察�but usually worth the effort。 Another  

option is to pull the money from your credit card�察�however�察�sometimes credit cards charge  

interest on the money you withdrew。 

     Now that you have an idea of what¨s involved in currency exchange�察�let¨s see what our  

sample application will do。 



Organizing the Currency Exchange Application 



The currency application takes a number of currency units and converts it to a number of other  

currency units。 The application will implement the following features�此�



     o Accept and store a currency exchange rate 



     o Store the currency unit identifiers 



     o Convert to a currency and back to the original currency 



     o Distinguish between active currency traders and hotel currency traders 



     o Implement a spread for hotel currency traders 



     As in the examples in the previous chapters�察�the project structure of the currency applica

tion will consist of two projects�此�a console testing application�察�named TestCurrencyTrader�察�and  

a library ponent�察�named CurrencyTrader�察�which contains the functionality of the hotel  

trader and the active trader。 



Writing Tests for the  

Currency Exchange Application  



Since we don¨t know exactly how the implementation will appear�察�let¨s start by writing some  

tests that will use our implementation。 We want to build the application incrementally�察�so we¨ll  

write some tests�察�write some code�察�test the code�察�and continue。 The overall big picture is to be  

able to convert from one currency to another。  


´´´´´´´´´´´´´´´´´´´´´´Page 160´´´´´´´´´´´´´´´´´´´´´´´

138       CH AP T E R   6   *    L E A R N IN G   T HE   B AS IC S  O F   OB J E CT OR I E N T E D   P R O G R AM M IN G 



          Getting Started with Structural Code 



          At the heart of the application are an exchange rate�察�currency units�察�and a calculation that  

          bines the exchange rate with the currency units。 Thus�察�a logical first step would be to write  

          test code that bines these elements�察�something like this�此�



          Dim cls As CurrencyTrader = New CurrencyTrader�┌� 

          cls。ExchangeRate = 1。46 

          Dim haveUSD As Double = 100。0 

          Dim getEUR As Double = cls。Convert��haveUSD�� 

          Console。WriteLine�─�Converted ; & haveUSD & ; USD to ; & getEUR�� 



                This code is unique in that the test code has all of the responsibility of making sure the  

          correct data is assigned to the structure。 To clarify this�察�here is the same code with random vari

          able n
卦指朕村 貧匯匈 和匯匈 指欺競何 壘��0�� 家��0��
隆堋響頼��紗秘慕禰厮宴和肝写偬堋響��
梁椣戻幣�� 梁心弌傍議揖扮窟燕得胎��傍竃徭失議心隈才凪万弌誌育断蛍�輌臆惨軼僑〃�燕慕得珊辛參資誼持蛍才将刮襲潜��範寔亟圻幹慕得 瓜寡追葎娼得辛參資誼寄楚署衛、持蛍才将刮襲潜填��