-
Notifications
You must be signed in to change notification settings - Fork 0
/
004_inter_finan.qmd
900 lines (766 loc) · 38.1 KB
/
004_inter_finan.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
---
title: "International financial markets"
author: Luis Francisco Gomez Lopez
date: 2023-07-11
format:
beamer:
colortheme: dolphin
fonttheme: structurebold
theme: AnnArbor
link-citations: true
linkcolor: blue
include-in-header:
- text: |
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{array}
\usepackage{multirow}
\usepackage{wrapfig}
\usepackage{float}
\usepackage{colortbl}
\usepackage{pdflscape}
\usepackage{tabu}
\usepackage{threeparttable}
\usepackage{threeparttablex}
\usepackage[normalem]{ulem}
\usepackage{makecell}
\usepackage{xcolor}
bibliography: econ_glob_faedis.bib
---
```{r setup, include = FALSE}
knitr::opts_chunk$set(echo = FALSE,
warning = FALSE,
message = FALSE,
fig.align = "center")
```
```{r libraries}
library(tidyverse)
library(knitr)
library(kableExtra)
library(tidyquant)
library(readxl)
```
# Contents
- Please Read Me
- Purpose
- Exchange regime in Colombia
- Exchange rates
- Foreign exchange hedges
- Acknowledgments
- References
# Please Read Me
- Check the message __Welcome greeting__ published in the News Bulletin Board.
- Dear student please edit your profile uploading a photo where your face is clearly visible.
- The purpose of the virtual meetings is to answer questions and not to make a summary of the study material.
- This presentation is based on [@wild_international_2020, Chapter 9]
# Purpose
Explain and describe the importance of the international capital market and its main components
# Exchange regime in Colombia
- The __exchange regime__ is the set of rules that regulate aspects of the foreign exchange market [@dian_preguntas_2020]
- In the exchange regime in Colombia there are 2 markets:
+ Free market ("Mercado libre" in spanish)
+ Regulated or exchange market ("Mercado regulado o cambiario" in spanish)
+ The regulated or exchange market is made up of all the currencies that must be __channeled__ through the __Exchange Market Intermediaries (EMI)__ (__Intermediarios del Mercado Cambiario (IMC)__ in spanish) authorized for that purpose or through the compensation mechanisms (clearing accounts) [@dian_preguntas_2020]
+ __Channeled__ means sell, buy or transfer currencies through the __EMI__
# Exchange regime in Colombia
- The operations that must be channeled through the regulated market or exchange market are [@dian_preguntas_2020]:
+ __Import and export of goods__
+ __Securities and guarantees in foreign currency__
+ __Derivatives operations__
+ External debt operations carried out by residents of the country, as well as the financial costs inherent to them.
+ Foreign capital investments in the country, as well as the returns associated with them
+ Colombian capital investments abroad, as well as the returns associated with them
+ Financial investments in securities issued and in assets located abroad, as well as the returns associated with them
# Exchange regime in Colombia
- __EMI__ (__(IMC)__ in spanish) in Colombia [@banrep_banco_2021]
```{r}
# Sistema Estadistico Cambiario SEC
## https://quimbaya.banrep.gov.co/secinternet/ >
## Endeudamiento externo y avales >
## Otros servicios >
## Consultar lista de intermediarios del mercado cambiario
# read_csv("004_intermediarios_mercado_cambiario.csv") %>%
read_excel(path = "004_intermediarios_mercado_cambiario.xlsx", sheet = 1) %>%
select(2,3) %>%
set_names(nm = c("NIT", "Name")) %>%
slice(1:22) %>%
kable(format = "latex", booktabs = TRUE) %>%
kable_styling(font_size = 4, latex_options = "striped") %>%
row_spec(row = 0, bold = TRUE) %>%
footnote(number = c("Source: Sistema Estadístico Cambiario - SEC",
# You need to update this manually
"Lat update: 2023-07-11"))
```
# Exchange regime in Colombia
- __EMI__ (__(IMC)__ in spanish) in Colombia [@banrep_banco_2021]
```{r}
# read_csv("004_intermediarios_mercado_cambiario.csv") %>%
read_excel(path = "004_intermediarios_mercado_cambiario.xlsx", sheet = 1) %>%
select(2,3) %>%
set_names(nm = c("NIT", "Name")) %>%
slice(23:45) %>%
kable(format = "latex", booktabs = TRUE) %>%
kable_styling(font_size = 4, latex_options = "striped") %>%
row_spec(row = 0, bold = TRUE) %>%
footnote(number = c("Source: Sistema Estadístico Cambiario - SEC",
# You need to update this manually
"Last update: 2023-07-11"))
```
# Exchange rates
- ISO 4217 Currency Codes: standard that establishes internationally recognized codes for the representation of currencies that enable clarity and reduce errors
+ Some examples:
+ __COP__: Colombian peso
+ __USD__: United States dollar
+ __EUR__: Euro
+ __GBP__: Pound sterling
+ Some examples of exchange rates using __COP__ as a quoted currency and __USD__, __EUR__ and __GBP__ as base currencies:
+ __COP/USD__
+ __COP/EUR__
+ __COP/GBP__
# Exchange rates
```{r, out.width="90%"}
cop_usd <- tq_get(x = "COP=X") %>%
select(symbol, date, high) %>%
arrange(desc(date))
cop_usd %>%
select(symbol, date, high) %>%
ggplot(aes(x = date, y = high)) +
geom_line(color = palette_light()[[1]]) +
labs(x = "",
y = "COP/USD",
title = "Daily exchange rate: COP/USD",
subtitle = str_glue("Variable code Yahoo Finance: {unique(cop_usd$symbol)}
Highest price of each day used to make the plot: {names(cop_usd)[[3]]} column in Yahoo Finance"),
caption = str_glue("Source: Yahoo Finance
Last update date: 2023-07-11")) + # You need to update this manually
theme(panel.border = element_rect(fill = NA, color = "black"),
plot.background = element_rect(fill = "#f3fcfc"),
panel.background = element_rect(fill = "#f3f7fc"),
legend.background = element_rect(fill = "#f3fcfc"),
plot.title = element_text(face = "bold"),
axis.title = element_text(face = "bold"),
legend.title = element_text(face = "bold"),
axis.text = element_text(face = "bold"))
```
# Exchange rates
```{r, out.width="90%"}
cop_eur <- tq_get(x = "EURCOP=X") %>%
select(symbol, date, high) %>%
arrange(desc(date))
cop_eur %>%
select(symbol, date, high) %>%
ggplot(aes(x = date, y = high)) +
geom_line(color = palette_light()[[1]]) +
labs(x = "",
y = "COP/EUR",
title = "Daily exchange rate: COP/EUR",
subtitle = str_glue("Variable code Yahoo Finance: {unique(cop_eur$symbol)}
Highest prices of each day used to make the plot: {names(cop_usd)[[3]]} column in Yahoo Finance"),
caption = str_glue("Source: Yahoo Finance
Last update date: 2023-07-11")) + # You need to update this manually
theme(panel.border = element_rect(fill = NA, color = "black"),
plot.background = element_rect(fill = "#f3fcfc"),
panel.background = element_rect(fill = "#f3f7fc"),
legend.background = element_rect(fill = "#f3fcfc"),
plot.title = element_text(face = "bold"),
axis.title = element_text(face = "bold"),
legend.title = element_text(face = "bold"),
axis.text = element_text(face = "bold"))
```
# Exchange rates
```{r, out.width="90%"}
cop_gbp <- tq_get(x = "GBPCOP=X") %>%
select(symbol, date, high) %>%
arrange(desc(date))
cop_gbp %>%
select(symbol, date, high) %>%
ggplot(aes(x = date, y = high)) +
geom_line(color = palette_light()[[1]]) +
labs(x = "",
y = "COP/GBP",
title = "Daily exchange rate: COP/GBP",
subtitle = str_glue("Variable code Yahoo Finance: {unique(cop_gbp$symbol)}
Highest prices of each day used to make the plot: {names(cop_usd)[[3]]} column in Yahoo Finance"),
caption = str_glue("Source: Yahoo Finance
Last update date: 2023-07-11")) + # You need to update this manually
theme(panel.border = element_rect(fill = NA, color = "black"),
plot.background = element_rect(fill = "#f3fcfc"),
panel.background = element_rect(fill = "#f3f7fc"),
legend.background = element_rect(fill = "#f3fcfc"),
plot.title = element_text(face = "bold"),
axis.title = element_text(face = "bold"),
legend.title = element_text(face = "bold"),
axis.text = element_text(face = "bold"))
```
# Exchange rates
- __Spot rates__
+ Exchange rates that require delivery of the traded currency within 2 business days
- __Forward rates__
+ A exchange rate at which 2 parties agree to exchange currencies on a specifies future date
# Foreign exchange hedges
- A foreign exchange hedge ("Cobertura cambiaria" in spanish) is a financial instrument used to eliminate the risk resulting from transactions in foreign currencies by transferring this risk to another agent which is usually a financial institution
- Foreign exchange hedges most used in Colombia [@bancoldex_coberturas_2014]:
+ Forward exchange rate
+ Delivery
+ Foreign exchange option
+ Put
+ Call
# Foreign exchange hedges
- Foreign exchange risk [@bancoldex_coberturas_2014, p 8-9]
```{r, fig.height=2.5, fig.width=4.5}
tibble(cop_usd = c(round(pull(cop_usd[1,3])) - 100,
round(pull(cop_usd[1,3])),
round(pull(cop_usd[1,3])) + 100),
y = rep(x = 0, times = 3)) %>%
mutate(label_text = str_glue("{as.character(cop_usd)}
COP/USD")) %>%
ggplot() +
geom_point(aes(x = cop_usd, y = y, fill = label_text),
shape = 21,
size = 4,
color = "black") +
geom_label(aes(x = cop_usd, y = y, label = label_text, fill = label_text),
vjust = -1,
color = "white") +
geom_vline(xintercept = round(pull(cop_usd[1,3])),
linetype = "dotted") +
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 100,
y = 0,
xend = round(pull(cop_usd[1,3])) + 100,
yend = 0),
aes(x = x,
y = y,
xend = xend,
yend = yend)) +
# Revaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) - 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Devaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) + 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) + 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Revaluation annotation
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) - 100))/2,
y = -0.5,
label = "Revaluation") +
# Devaluation annotation
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) + 100))/2,
y = -0.5,
label = "Devaluation") +
scale_fill_tq() +
xlim(c(round(pull(cop_usd[1,3])) - 120, round(pull(cop_usd[1,3])) + 120)) +
ylim(c(-1, 1)) +
theme(panel.border = element_rect(fill = NA, color = "black"),
plot.background = element_rect(fill = "#f3fcfc"),
panel.background = element_rect(fill = "#f3f7fc"),
panel.grid = element_blank(),
legend.background = element_rect(fill = "#f3fcfc"),
legend.position = "none",
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())
```
# Foreign exchange hedges
- Foreign exchange risk [@bancoldex_coberturas_2014, p 8-9]
+ A __importer__ is not in the business of currency speculation
```{r, fig.height=2, fig.width=4.5}
tibble(cop_usd = c(round(pull(cop_usd[1,3])) - 100,
round(pull(cop_usd[1,3])),
round(pull(cop_usd[1,3])) + 100),
y = rep(x = 0, times = 3)) %>%
mutate(label_text = str_glue("{as.character(cop_usd)}
COP/USD")) %>%
ggplot() +
geom_point(aes(x = cop_usd, y = y, fill = label_text),
shape = 21,
size = 4,
color = "black") +
geom_label(aes(x = cop_usd, y = y, label = label_text, fill = label_text),
vjust = -1,
color = "white") +
geom_vline(xintercept = round(pull(cop_usd[1,3])),
linetype = "dotted") +
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 100,
y = 0,
xend = round(pull(cop_usd[1,3])) + 100,
yend = 0),
aes(x = x,
y = y,
xend = xend,
yend = yend)) +
# Revaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) - 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Devaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) + 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) + 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Revaluation annotation: potential gain
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) - 100))/2,
y = -0.5,
label = str_glue("Revaluation
Potential gain")) +
# Devaluation annotation: potential loss
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) + 100))/2,
y = -0.5,
label = str_glue("Devaluation
Potential loss"),
fill = palette_light()[[4]]) +
scale_fill_tq() +
xlim(c(round(pull(cop_usd[1,3])) - 120, round(pull(cop_usd[1,3])) + 120)) +
ylim(c(-1, 1)) +
theme(panel.border = element_rect(fill = NA, color = "black"),
plot.background = element_rect(fill = "#f3fcfc"),
panel.background = element_rect(fill = "#f3f7fc"),
panel.grid = element_blank(),
legend.background = element_rect(fill = "#f3fcfc"),
legend.position = "none",
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())
```
# Foreign exchange hedges
- Foreign exchange risk [@bancoldex_coberturas_2014, p 8-9]
+ A __exporter__ is not in the business of currency speculation
```{r, fig.height=2, fig.width=4.5}
tibble(cop_usd = c(round(pull(cop_usd[1,3])) - 100,
round(pull(cop_usd[1,3])),
round(pull(cop_usd[1,3])) + 100),
y = rep(x = 0, times = 3)) %>%
mutate(label_text = str_glue("{as.character(cop_usd)}
COP/USD")) %>%
ggplot() +
geom_point(aes(x = cop_usd, y = y, fill = label_text),
shape = 21,
size = 4,
color = "black") +
geom_label(aes(x = cop_usd, y = y, label = label_text, fill = label_text),
vjust = -1,
color = "white") +
geom_vline(xintercept = round(pull(cop_usd[1,3])),
linetype = "dotted") +
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 100,
y = 0,
xend = round(pull(cop_usd[1,3])) + 100,
yend = 0),
aes(x = x,
y = y,
xend = xend,
yend = yend)) +
# Revaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) - 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Devaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) + 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) + 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Revaluation annotation: potential loss
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) - 100))/2,
y = -0.5,
label = str_glue("Revaluation
Potential loss"),
fill = palette_light()[[4]]) +
# Devaluation annotation: potential gain
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) + 100))/2,
y = -0.5,
label = str_glue("Devaluation
Potential gain")) +
scale_fill_tq() +
xlim(c(round(pull(cop_usd[1,3])) - 120, round(pull(cop_usd[1,3])) + 120)) +
ylim(c(-1, 1)) +
theme(panel.border = element_rect(fill = NA, color = "black"),
plot.background = element_rect(fill = "#f3fcfc"),
panel.background = element_rect(fill = "#f3f7fc"),
panel.grid = element_blank(),
legend.background = element_rect(fill = "#f3fcfc"),
legend.position = "none",
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())
```
# Foreign exchange hedges
- __Forward exchange rate (Delivery)__: Upon expiration of the contract there is a transfer of the currency amount negotiated between the parties at an exchange rate agreed previously
+ __Parties__:
+ Importer or exporter
+ Financial institution
+ __Due date ("Fecha de vencimiento/plazo" in spanish)__
+ __Amount ("Monto" in spanish)__: amount of currency that the financial institution agrees to buy or sell to the importer or exporter
+ __Forward rate__: rate agreed previously at which currencies will be bought or sold on the due date which is equal to __Spot price__ + __Implicit devaluation__ [^1]
+ __Spot price__: currency price at the time of negotiating this type of forward
[^1]: In [@wild_international_2020, Chapter 10] we will examine a way to calculate it
# Foreign exchange hedges
- __Forward exchange rate (Delivery)__: example with a positive implicit devaluation of 10, a spot price of `r round(pull(cop_usd[1,3]))` and a forward rate of `r round(pull(cop_usd[1,3])) + 10`
```{r, fig.height=2, fig.width=4.5}
tibble(cop_usd = c(round(pull(cop_usd[1,3])) - 100,
round(pull(cop_usd[1,3])) + 10,
round(pull(cop_usd[1,3])) + 100),
y = rep(x = 0, times = 3)) %>%
mutate(label_text = str_glue("{as.character(cop_usd)}
COP/USD")) %>%
ggplot() +
geom_point(aes(x = cop_usd, y = y, fill = label_text),
shape = 21,
size = 4,
color = "black") +
geom_label(aes(x = cop_usd, y = y, label = label_text, fill = label_text),
vjust = -1,
color = "white") +
geom_vline(xintercept = round(pull(cop_usd[1,3])),
linetype = "dotted") +
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 100,
y = 0,
xend = round(pull(cop_usd[1,3])) + 100,
yend = 0),
aes(x = x,
y = y,
xend = xend,
yend = yend)) +
# Revaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) - 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Devaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) + 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) + 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Revaluation annotation: potential loss
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) - 100))/2,
y = -0.5,
label = str_glue("Revaluation
No potential
loss/gain")) +
# Devaluation annotation: potential gain
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) + 100))/2,
y = -0.5,
label = str_glue("Devaluation
No potential
loss/gain")) +
scale_fill_tq() +
xlim(c(round(pull(cop_usd[1,3])) - 120, round(pull(cop_usd[1,3])) + 120)) +
ylim(c(-1, 1)) +
theme(panel.border = element_rect(fill = NA, color = "black"),
plot.background = element_rect(fill = "#f3fcfc"),
panel.background = element_rect(fill = "#f3f7fc"),
panel.grid = element_blank(),
legend.background = element_rect(fill = "#f3fcfc"),
legend.position = "none",
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())
```
# Foreign exchange hedges
- __Put option (Exporter)__: The exporter acquires the right to sell foreign currency at a price established on a certain future date, but is not obliged to carry out the operation if it does not favor him
+ __Parties__:
+ Exporter
+ Financial institution
+ __Due date ("Fecha de vencimiento/plazo" in spanish)__
+ __Amount ("Monto" in spanish)__: amount of currency that the financial institution agrees to buy or sell to the importer or exporter
+ __Forward rate__: rate agreed previously at which currencies will be bought or sold on the due date where it is equal to __Spot price__ + __Implicit devaluation__
+ __Spot price__: currency price at the time of negotiating this type of forward
+ __Premium value__ ("valor de la prima" in spanish)
# Foreign exchange hedges
- __Put option (Exporter)__: an example where the potential loss materializes, the implicit devaluation is 10, the spot price is `r round(pull(cop_usd[1,3]))`, the forward rate is `r round(pull(cop_usd[1,3])) + 10` and the exporter pays a premium value of 5 __COP__ per __USD__
+ In this case the exporter __opts__ for the option
```{r, fig.height=2, fig.width=4.5}
tibble(cop_usd = c(round(pull(cop_usd[1,3])) - 100,
round(pull(cop_usd[1,3])) + 10,
round(pull(cop_usd[1,3])) + 100),
y = rep(x = 0, times = 3)) %>%
mutate(label_text = str_glue("{as.character(cop_usd)}
COP/USD")) %>%
ggplot() +
geom_point(aes(x = cop_usd, y = y, fill = label_text),
shape = 21,
size = 4,
color = "black") +
geom_label(aes(x = cop_usd, y = y, label = label_text, fill = label_text),
vjust = -1,
color = "white") +
geom_vline(xintercept = round(pull(cop_usd[1,3])),
linetype = "dotted") +
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 100,
y = 0,
xend = round(pull(cop_usd[1,3])) + 100,
yend = 0),
aes(x = x,
y = y,
xend = xend,
yend = yend)) +
# Revaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) - 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Revaluation annotation: potential loss materializes
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) - 100))/2,
y = -0.5,
label = str_glue("Potential loss
materializes"),
fill = palette_light()[[4]]) +
scale_fill_tq() +
xlim(c(round(pull(cop_usd[1,3])) - 120, round(pull(cop_usd[1,3])) + 120)) +
ylim(c(-1, 1)) +
theme(panel.border = element_rect(fill = NA, color = "black"),
plot.background = element_rect(fill = "#f3fcfc"),
panel.background = element_rect(fill = "#f3f7fc"),
panel.grid = element_blank(),
legend.background = element_rect(fill = "#f3fcfc"),
legend.position = "none",
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())
```
# Foreign exchange hedges
- __Put option (Exporter)__: an example where the potential gain materializes, the implicit devaluation is 10, the spot price is `r round(pull(cop_usd[1,3]))`, the forward rate is `r round(pull(cop_usd[1,3])) + 10` and the exporter pays a premium value of 5 __COP__ per __USD__
+ In this case the exporter __doesn't opt__ for the option
```{r, fig.height=2, fig.width=4.5}
tibble(cop_usd = c(round(pull(cop_usd[1,3])) - 100,
round(pull(cop_usd[1,3])) + 10,
round(pull(cop_usd[1,3])) + 100),
y = rep(x = 0, times = 3)) %>%
mutate(label_text = str_glue("{as.character(cop_usd)}
COP/USD")) %>%
ggplot() +
geom_point(aes(x = cop_usd, y = y, fill = label_text),
shape = 21,
size = 4,
color = "black") +
geom_label(aes(x = cop_usd, y = y, label = label_text, fill = label_text),
vjust = -1,
color = "white") +
geom_vline(xintercept = round(pull(cop_usd[1,3])),
linetype = "dotted") +
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 100,
y = 0,
xend = round(pull(cop_usd[1,3])) + 100,
yend = 0),
aes(x = x,
y = y,
xend = xend,
yend = yend)) +
# Devaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) + 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) + 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Devaluation annotation: potential gain materializes
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) + 100))/2,
y = -0.5,
label = str_glue("Potential gain
materializes")) +
scale_fill_tq() +
xlim(c(round(pull(cop_usd[1,3])) - 120, round(pull(cop_usd[1,3])) + 120)) +
ylim(c(-1, 1)) +
theme(panel.border = element_rect(fill = NA, color = "black"),
plot.background = element_rect(fill = "#f3fcfc"),
panel.background = element_rect(fill = "#f3f7fc"),
panel.grid = element_blank(),
legend.background = element_rect(fill = "#f3fcfc"),
legend.position = "none",
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())
```
# Foreign exchange hedges
- __Call option (Importer)__: The importer acquires the right to buy foreign currency at a price established on a certain future date, but is not obliged to carry out the operation if it does not favor him
+ __Parties__:
+ Importer
+ Financial institution
+ __Due date ("Fecha de vencimiento/plazo" in spanish)__
+ __Amount ("Monto" in spanish)__: amount of currency that the financial institution agrees to buy or sell to the importer or exporter
+ __Forward rate__: rate agreed previously at which currencies will be bought or sold on the due date where it is equal to __Spot price__ + __Implicit devaluation__
+ __Spot price__: currency price at the time of negotiating this type of forward
+ __Premium value__ ("valor de la prima" in spanish)
# Foreign exchange hedges
- __Call option (Importer)__: an example where the potential loss materializes, the implicit devaluation is 10, the spot price is `r round(pull(cop_usd[1,3]))`, the forward rate is `r round(pull(cop_usd[1,3])) + 10` and the importer pays a premium value of 5 __COP__ per __USD__
+ In this case the importer __opts__ for the option
```{r, fig.height=2, fig.width=4.5}
tibble(cop_usd = c(round(pull(cop_usd[1,3])) - 100,
round(pull(cop_usd[1,3])) + 10,
round(pull(cop_usd[1,3])) + 100),
y = rep(x = 0, times = 3)) %>%
mutate(label_text = str_glue("{as.character(cop_usd)}
COP/USD")) %>%
ggplot() +
geom_point(aes(x = cop_usd, y = y, fill = label_text),
shape = 21,
size = 4,
color = "black") +
geom_label(aes(x = cop_usd, y = y, label = label_text, fill = label_text),
vjust = -1,
color = "white") +
geom_vline(xintercept = round(pull(cop_usd[1,3])),
linetype = "dotted") +
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 100,
y = 0,
xend = round(pull(cop_usd[1,3])) + 100,
yend = 0),
aes(x = x,
y = y,
xend = xend,
yend = yend)) +
# Devaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) + 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) + 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Devaluation annotation: potential loss materializes
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) + 100))/2,
y = -0.5,
label = str_glue("Potential loss
materializes"),
fill = palette_light()[[4]]) +
scale_fill_tq() +
xlim(c(round(pull(cop_usd[1,3])) - 120, round(pull(cop_usd[1,3])) + 120)) +
ylim(c(-1, 1)) +
theme(panel.border = element_rect(fill = NA, color = "black"),
plot.background = element_rect(fill = "#f3fcfc"),
panel.background = element_rect(fill = "#f3f7fc"),
panel.grid = element_blank(),
legend.background = element_rect(fill = "#f3fcfc"),
legend.position = "none",
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())
```
# Foreign exchange hedges
- __Call option (Importer)__: an example where the potential gain materializes, the implicit devaluation is 10, the spot price is `r round(pull(cop_usd[1,3]))`, the forward rate is `r round(pull(cop_usd[1,3])) + 10` and the importer pays a premium value of 5 __COP__ per __USD__
+ In this case the importer __doesn't opt__ for the option
```{r, fig.height=2, fig.width=4.5}
tibble(cop_usd = c(round(pull(cop_usd[1,3])) - 100,
round(pull(cop_usd[1,3])) + 10,
round(pull(cop_usd[1,3])) + 100),
y = rep(x = 0, times = 3)) %>%
mutate(label_text = str_glue("{as.character(cop_usd)}
COP/USD")) %>%
ggplot() +
geom_point(aes(x = cop_usd, y = y, fill = label_text),
shape = 21,
size = 4,
color = "black") +
geom_label(aes(x = cop_usd, y = y, label = label_text, fill = label_text),
vjust = -1,
color = "white") +
geom_vline(xintercept = round(pull(cop_usd[1,3])),
linetype = "dotted") +
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 100,
y = 0,
xend = round(pull(cop_usd[1,3])) + 100,
yend = 0),
aes(x = x,
y = y,
xend = xend,
yend = yend)) +
# Revaluation
geom_segment(data = tibble(x = round(pull(cop_usd[1,3])) - 10,
y = -0.5,
xend = round(pull(cop_usd[1,3])) - 100,
yend = -0.5),
aes(x = x,
y = y,
xend = xend,
yend = yend),
arrow = arrow(ends = "last")) +
# Revaluation annotation: potential gain materializes
annotate("label",
x = (round(pull(cop_usd[1,3])) + (round(pull(cop_usd[1,3])) - 100))/2,
y = -0.5,
label = str_glue("Potential gain
materializes")) +
scale_fill_tq() +
xlim(c(round(pull(cop_usd[1,3])) - 120, round(pull(cop_usd[1,3])) + 120)) +
ylim(c(-1, 1)) +
theme(panel.border = element_rect(fill = NA, color = "black"),
plot.background = element_rect(fill = "#f3fcfc"),
panel.background = element_rect(fill = "#f3f7fc"),
panel.grid = element_blank(),
legend.background = element_rect(fill = "#f3fcfc"),
legend.position = "none",
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())
```
# Acknowledgments
- To my family that supports me
- To the taxpayers of Colombia and the __[UMNG students](https://www.umng.edu.co/estudiante)__ who pay my salary
- To the __[Business Science](https://www.business-science.io/)__ and __[R4DS Online Learning](https://www.rfordatasci.com/)__ communities where I learn __[R](https://www.r-project.org/about.html)__
- To the __[R Core Team](https://www.r-project.org/contributors.html)__, the creators of __[RStudio IDE](https://rstudio.com/products/rstudio/)__ and the authors and maintainers of the packages __[tidyverse](https://CRAN.R-project.org/package=tidyverse)__, __[knitr](https://CRAN.R-project.org/package=knitr)__, __[tidyquant](https://CRAN.R-project.org/package=tidyquant)__, __[kableExtra](https://CRAN.R-project.org/package=kableExtra)__ and __[tinytex](https://CRAN.R-project.org/package=tinytex)__ for allowing me to access these tools without paying for a license
- To the __[Linux kernel community](https://www.kernel.org/category/about.html)__ for allowing me the possibility to use some __[Linux distributions](https://static.lwn.net/Distributions/)__ as my main __[OS](https://en.wikipedia.org/wiki/Operating_system)__ without paying for a license
# References