Hedging Against Rising Cocoa Prices using Cocoa Futures

Best Binary Options Brokers 2020:
  • Binarium

    The Best Binary Options Broker 2020!
    Perfect For Beginners and Middle-Leveled Traders!
    Free Demo Account!
    Free Trading Education!
    Get Your Sign-Up Bonus Now!

  • Binomo

    Good Broker For Experienced Traders!

Cocoa Futures

The precious value of the cocoa bean has long been known. It has even been used as a form of currency in Central and South America before the Spanish conquest. Just as it was a royal luxury in Renaissance Spain, cocoa today is predominantly enjoyed by the wealthier economies such as the U.S., Netherlands, and Germany. Today, it is recognized that cocoa futures represent the benchmark for the world cocoa market.

Cocoa Contract Specifications
Product Symbol CC
Contract Size 10 metric tons
Price Quotation Dollars per metric tons
Contract Months March, May, July, September, December
Minimum Fluctuation $1.00/metric ton, equivalent to $10.00 per contract.
Settlement Procedure Physical Delivery
Daily Price Limit none
Delivery Growths The growth of any country or clime, including new or yet unknown growths. Growths are divided into three classifications. Group A-Deliverable at a premium of $160/ton (including main crops of Ghana, Lome, Nigeria, Ivory Coast and Sierra Leone). Group B-Deliverable at a premium of $80/ton (includes Bahia, Arriba, Venezuela,Sanchez among others). Group C-Deliverable at par (includes Haiti, Malaysia and all others).
Delivery Points At licensed warehouses in the Port of New York District, Delaware River Port District, Port of Hampton Roads, Port of Albany or Port of Baltimore.
First Day Notice Ten business days prior to first business day of delivery month.
Last Trading Day One business day prior to last notice day.
Last Notice Day Ten business days prior to last business day of delivery month.
Trading Hours
Trading Pre-Open
NEW YORK: 4:00 AM-2:00 PM
08:00 PM
LONDON: 9:00 AM-7:00 PM
01:00 AM
SINGAPORE: 4:00 PM-2:00 AM
8:00 AM
Source: ICE

Cocoa Facts

Cocoa is a powder derived from the fruit seeds of the cacao tree. It was referred as “the fruit of the gods” when it was first discovered in South America and was used as both a currency and a base of a drink. Historical evidence tells us that cocoa has been consumed for thousands of years. Today, about 3 million metric tons of cocoa are produced each year. The largest user of cocoa is the chocolate industry, but cocoa is also used in many non-food products including makeup and soap.

Cocoa is produced in warm climates like rainforests, near the equator. There are four major West African cocoa producers: the Ivory Coast, Ghana, Nigeria and Cameroon. These nations account for two-thirds of the world’s cocoa production. Other producers include: Indonesia, Brazil, Malaysia, Ecuador, and the Dominican Republic. Cocoa begins as a seed that eventually germinates and produces a plant. The plant can be grown in many soil types. Cocoa trees usually take 3-5 years to mature and can live for up to 50 years. When cocoa beans are produced, it takes about 6 months for them to ripen.

Last updated May 2020

Additional Info

Recent Posts on Cocoa

  • Beyond the Spotlight: April 6, 2020 (Pound, Bean Oil, Cocoa ) (4/6/2020) – Beyond the Spotlight is a weekly video released on Mondays that spotlights two or three markets that may become trading opportunities for the week ahead. This enables you as a subscriber of the Trade Spotlight advisory service to look ahead with us, while potentially creating additional trading opportunities for yourself. The week’s video linked below… Read more.
  • Trade Spotlight: Futures – Weekly Summary: Cocoa (4/5/2020) – Stopped out of the Natrual Gas position. Working an order in the Cocoa futures market.
  • Beyond the Spotlight: March 30, 2020 (S&;P, Dollar, Cocoa ) (3/30/2020) – Beyond the Spotlight is a weekly video released on Mondays that spotlights two or three markets that may become trading opportunities for the week ahead. This enables you as a subscriber of the Trade Spotlight advisory service to look ahead with us, while potentially creating additional trading opportunities for yourself. The week’s video linked below… Read more.

Primary Sidebar

Tips & Strategies

How Does The FED Combat Financial Crises?

During challenging economic times, the U.S. Federal Reserve (FED) is tasked with managing the chaos. The organization’s primary objective is clearly defined in its official mission statement:

The FED, USD, and the Coronavirus Outbreak

The 2020 outbreak of the novel coronavirus (COVID-19) created a financial environment driven by angst and trepidation. COVID-19 panic swept the globe, placing the world’s capital structure under extreme pressure. The result was consistently high volatilities in the commodity, equity, currency, and debt markets.

Is the Coronavirus Causing a Global Recession?

Traditional financial theory suggests that a recession is two consecutive quarters of negative growth in a nation’s gross domestic product (GDP). The underpinnings of these types of economic downturns vary. Typically, a recession is attributed to commodity pricing instability, market crashes, inflation, or extraordinary events.

Мое знакомство с ReactiveCocoa

Честно говоря, я начала использовать ReactiveCocoa, потому что это модно. Я слышу как iOS разработчики говорят об этом фреймворке все время, и я едва могу вспомнить iOS Meetup без упоминание ReactiveCocoa.

Когда я только начала изучать ReactiveCocoa я не знала что это такое. «Реактивный» звучит действительно здорово, и «функциональный» звучит умно. Но после того как я поддалась искушению овладеть Reactive Cocoa я уже не могу себе представить написания кода без его использования.

ReactiveCocoa это фреймворк, который открывает окно в мир функционально реактивного программирования. Он позволяет извлечь выгоду из практического применения этой парадигмы, даже не требуя глубоких теоретических знаний FRP.

Я овладела ReactiveCocoa на реальном проекте, делая некоторые простые вещи, сначала я использовала его для решения двух проблем, о которых я расскажу вам, в этой статье. Я буду говорить «что делать», а не «как сделать», чтобы вы могли получить практическое понимание фреймворка.

Best Binary Options Brokers 2020:
  • Binarium

    The Best Binary Options Broker 2020!
    Perfect For Beginners and Middle-Leveled Traders!
    Free Demo Account!
    Free Trading Education!
    Get Your Sign-Up Bonus Now!

  • Binomo

    Good Broker For Experienced Traders!

1. Связи

Знакосмтво с ReactiveCocoa обычно начинается со связей. В конце концов, они являются самой простой вещью, которую можно понять новичку.

Связи сами по себе являются лишь дополнением к существующему механизму KVO в Objective-C. Есть что-нибудь новое, что ReactiveCocoa приносит в KVO? Это более удобный интерфейс, так же добавляет способность, описать правила связывания состояния модели и состояние на UI в декларативном стиле.

Давайте посмотрим на связи на примере ячейки таблицы.

Обычно ячейка привязывается к модели и отображает ее визуальное состояние (или состояние ViewModel для адептов MVVM). Хотя, ReactiveCocoa часто рассматриваются в едином контексте с MVVM и наоборот, это на самом деле не имеет значения. Связи — это просто способ сделать вашу жизнь проще.

Это декларативный стиль. «Я хочу, чтобы текст моей метке всегда равнялся значению Title моей модели» — в методе -awakeFromNib. На самом деле не имеет значения, когда title или модель изменяется.

Когда мы посмотрим на то, как это работает внутри, мы обнаружим, что RACObserve является макросом, который принимает путь (“mode.title” из объекта self в нашем случае) и преобразует его в RACSignal. RACSignal является объектом фреймворка ReactiveCocoa, который представляет и обеспечивает будущие данные. В нашем примере, он будет доставлять данные из “model.title” каждый раз, когда title или модель изменяется.

Мы будем говорить о сигналах чуть позже, так как нет необходимости вдаваться в подробности на этом этапе. В настоящее время, вы можете просто “связать” состояние модели с интерфейсом и наслаждаться результатом.

Довольно часто вы должны будете трансформировать состояние модели для отображения ее состояния на UI. В этом случае вы можете использовать оператор -map:

Все операции с UI должны быть выполнены в основном потоке. Но, например, поле title может быть изменено в фоновом потоке (т.е. при обработке данных). Вот то, что вам нужно добавить для того, чтобы новое значение title было доставлено абоненту на главном потоке:

RACObserve это расширеный макрос -rac_valuesForKeyPath:observer: Но вот уловка — этот макрос всегда захватывает self в качестве наблюдателя. Если вы используете RACObserve внутри блока, вы должны убедиться, что вы не создаете цикличность ссылок и используете слабую ссылку. ReactiveCocoa имеет удобные макросы @weakify и @strongify для этих нужд.

Еще одна деталь о которой нужно предупредить о связях — это случай, когда ваше состояние модели привязано к некоторым существенным изменениям пользовательского интерфейса, а также к частым изменениям состояния модели. Это может негативно повлиять на производительность приложения и, чтобы избежать этого вы можете использовать оператор -throttle: — он принимает NSTimeInterval и посылает команду «next» абоненту после заданного интервала времени.

2. Операции над коллекциями (filter, map, reduce)

Операции над коллекциям были следущим, что мы исследовали в ReactiveCocoa. Работа с массивами занимает много времени, не так ли? В то время как ваше приложение работает, массивы данных приходят к вам с сети и требуют модификации, так чтобы вы могли представить их пользователю в необходимой форме.

Необработанные данные из сети должны быть преобразованы в обьект или View Models, и отображены пользователю.

В ReactiveCocoa, коллекции представлены как класс RACSequence. Есть категории для всех типов Cocoa коллекций, которые преобразуют Cocoa коллекции в коллекции ReactiveCocoa. После этих преобразований, вы получите несколько функциональных методов, такие как map, filter и reduce.

Вот небольшой пример:

Во-первых, мы фильтруем наши view models, чтобы выбрать те, которые уже имеют сообщения ( — (BOOL)hasMessages). После чего мы должны превратить их в другие view models.

После того как вы закончили с последовательностю, она может быть преобразована обратно в NSArray:

Вы заметили, что мы снова используем оператор -map:? На этот раз, хотя, это и относится к RACSequence, а не RACSignal, как это было со связями.

Самым замечательным в архитектуре RAC является то, что она имеет только два основных класса — RACSignal и RACSequence, которые имеют одного родителя — RACStream. Все поток, а сигнал является толчком приводящи поток в движение (новые значения выталкиваются к подписчикам и не могут быть выведены), а последовательность является выдвижным приводом потока (обеспечивает значения, когда кто-то о них просит).

Еще одна вещь, которую стоит отметить, это как мы связываем операции вместе. Это ключевое понятие в RAC, которое также применяется в RACSignal и RACSequence.

3. Работа с сетью

Следующим шагом в понимании особенностей фреймворка, это использование его для работы в сети. Когда я говорила о связях, я упомянула, что маркос RACObserve создает RACSignal, который представляет данные, которые будут доставлены в будущем. Этот объект идеально подходит для представления сетевого запроса.

Сигналы отправляют три типа событий:

  • next — будущее значение/значения;
  • error — Значение NSError*, что означает, что сигнал не может быть успешно завершен;
  • completed — означает, что сигнал был успешно завершен.

Срок службы сигнала состоит из любого числа next событий, а затем одного error или completed (но не обоих).

Это очень похоже на то, как мы писали наши сетевые запросы, используя блоки. Но в чем разница? Зачем заменять обычные блоки сигналами? Вот некоторые причины:

1) Вы избавляетесь от обратного вызова!

Этот кошмар в коде происходит, когда у вас есть несколько вложенных запросов и каждый последующи использует результат предыдущего.

2) Вы обрабатываете ошибку в одном месте.

Вот небольшой пример:

Предположим, у вас есть два сигнала — loginUser и fetchUserInfo. Давайте создадим сигнал, который «логинет» пользователя, и затем получает его данные:

Блок flattenMap будет вызываться, когда сигнал loginUser посылает событие next, и это значение переходит к блоку через параметр user. В блоке flattenMap мы берем это значение из предыдущего сигнала и производим новый сигнал в качестве результата. Теперь, давайте подпишемся на этот сигнал:

Стоит отметить, что блок subscribeError будет вызываться в том случае если по крайней мере один из сигналов не сработает. Если первый сигнал завершается с ошибкой, второй сигнал не выполниться.

3) Сигнал имеет встроенный механизм утилизации (отмены).

Например, нередко пользователь покидает экран во время его загрузки. В этом случае операция загрузки должна быть отменена. Вы можете реализовать эту логику непосредственно в сигнале, а не хранить ссылку на данную операцию загрузки. Например, сигнал для загрузки пользовательских данных может быть создан следующим образом:

Я намеренно упростила этот код, чтобы показать идею, но в реальной жизни вы, не должны захватывать self в блоке.

Ссылкой на сигнал можно определить, когда он должен быть отменен:

Самым замечательным в этом подходе является то, что вы не должны хранить ссылки на операции, которые вы будете использовать, только тогда, когда вам нужно, чтобы завершить их. Поэтому код выглядит более декларативным, поскольку нет никакой необходимости, сохранять промежуточное состояние.

Конечно, вы также можете отменить сигнал вручную — просто хранить ссылку на объект RACDisposable (который возвращается из метода subsribeNext/Error/Completed) и вызвать непосредственно метод -dispose, когда есть такая необходимость.

Реализация сетевого клиента с использованием сигналов является довольно обширной темой для обсуждения. Вы можете посмотреть на OctoKit — отличный пример того, как использоваться Reactive Cocoa для решения сетевых вопросов. Ash Furrow, также покрыл эту тему в своей книге Функциональное реактивное программирование под iOS.

4. Сигналы в действии

При решении некоторых задач, мы объединяли части данных и событий из разных частей приложения. Данные появляются и изменяются асинхронно. Если мы думаем о них этом императивно, мы стараемся предвидеть, какие дополнительные соединения и переменные должны прийти в коде и, что более важно, как синхронизировать все это вовремя.

Когда мы сформулировали приблизительную цепочку действий, которые должны быть завершены, мы начинаем писать код, и различные части класса или даже несколько классов загрязняются новыми строками кода, операторы if, бесполезные состояния, которые “бродят” вокруг нашего проекта как цыганские караваны.

Вы знаете, как трудно разобрать такой код! И иногда единственный способ выяснить, что происходит, это отладка шаг за шагом.

Через некоторое время работы с Reactive Cocoa, ко мне пришло понимание, что основое решения всех упомянутых выше задач (связывание, операции над колекциями, работа с сетью) представляет жизненный цикл приложения в качестве потока данных (RACStream). Затем данные, поступающие от пользователя или с сети должны быть преобразованы определенным способом. Оказывается можно решить поставленные задачи гораздо проще!

Давайте рассмотрим два примера.

Задача #1
Это пример из реального проекта, который мы недавно закончили.

У нас была возможность обмена сообщениями и одной из задач было отобразить правильное количество непрочитах сообщений на иконке приложения. Обычная задача, не так ли?

У нас был класс ChatViewModel с которых хранил логическое свойство unread.

И где-то в коде, мы имели массив dataSourc, содержащий эти view models.

Что мы хотим сделать? Мы хотим обновлять количество непрочитаных сообщений каждый раз когда меняется unread свойство. Количество елементов должно равняться количеству значений YES, во всех моделях. Давайте сделаем такую выобрку с помощью сигнала:

Это может выглядеть немного сложно для новичков, но это довольно легко понять.

Во-первых, мы наблюдаем за изменениями в массиве:

Это важно, потому что предполагается, что могут быть созданные новые чаты, и старые могут быть удалены. Так RAC нету KVO для изменяемых колекций, DataSource является неизменяемы массивом каждый раз, когда объект добавлен/удален из/в dataSource. RACObserv вернет сигнал, который будет возращать новый массив каждый раз, когда в dataSource будет добавленно новое значение.

Хорошо, мы получили сигнал… Но это не тот сигнал, который мы хотели, таким образом, мы должны преобразовать его. Оператор -map: прекрасно подойдет для этой задачи.

Мы получили множество моделей в блоке map. Так как мы хотим знать о каждом изменении свойства unread всех моделий, кажется, что мы все еще нуждаемся в сигнале, или даже массиве сигналов — один сигнал для каждой модели:

Ничего нового здесь нет. RACSequence, map, RACObserve.

Примечание: В этом случае, мы преобразовуем нашу последовательность значений в последовательность сигналов.

На самом деле нам не нужно так много сигналов, нам нужен один, но значимый, так как постоянно меняющися данных должны быть обработаны вместе. В RAC есть несколько способов объединить сигналы, и вы можете выбрать тот, который соответствует вашим потребностям.

+merge, будет пересылать значения от наших сигналов в единый поток. Это точно не соответствует нашим потребностям, в следующем блоке мы увидим только последнее значение (в нашем случае YES или NO).

Так как мы хотим знать все значения (для того, чтобы получить их сумму), давайте использовать + combineLatest: Он будет следить за изменением сигналов, а затем, отправлять последнее значения всех сигналов, когда происходит изменение. В следующем блоке мы можем видеть «снимок» всех наших непрочитанных значений.

Теперь мы можем получать массив последних значений каждый раз, когда изменяется одиночные значения. Почти закончено! Единственной задачей осталось подсчитать, сколько раз встречается значение YES в этом массиве. Мы можем сделать это с помощью простого цикла, но давайте быть функциональными до конца и использовать оператор reduce. reduce является известной функцией в функциональном программировании, которая преобразует сбор данных в единую атомную величину заранее определенным правилом. В RAC эта функция -foldLeftWithStart:reduce: или -foldLeftWithStart:reduce:.

Последнее, что остается неясным, зачем нам нужен switchToLatest?

Без него мы получим сигнал сигналов (так как мы преобразовуем значение массива в сигнал), и если вы подпишитесь на unreadStatusChanged, вы получите сигнал в следующем блоке, а не значения. Мы можем использовать либо -flatten или -switchToLatest (которая flattened, но с небольшой разницей), чтобы исправить это.

flatten означает, что подписчик, который в настоящее время flattened получит значения, отправленное с помощью сигнала, который возвращается из преобразования. В то время как -flatten принимает сигнал сигналов и объединяет их вместе следующие значения, отправленные любому из них, -switchToLatest делает то же самое, но перенаправляет значения только из последнего сигнала.

В нашем случае это работает лучше, поскольку мы не хотим получать изменения старой версии нашего dataSource. Сигнал готов и мы можем использовать его, давайте сделаем побочный эффект:

Вы заметили, как постановка задачи связана с кодом? Мы только что написали, что декларативно мы хотим сделать в одном месте. Нам не нужно сохранить промежуточное состояние.

Иногда вам придется углубиться в документацию фреймворка, чтобы найти правильные операторы чтобы сформулировать пользовательский сигнал, но это стоит того.

Вот еще одна задача, которая демонстрирует возможности фреймворка. У нас был экран списка чатов, и задача была: при открытые экрана с списком чатов, отображать последниее сообщение чата. Вот как выглядит созданный сигнал:

Давайте посмотрим, из чего он состоит.

Этот пример очень похож на предыдущий. Мы наблюдаем массив, оператор map конвертирует знавчения в сигнал, и принимая во внимание только последние сигналы.

Сначала мы фильтруем наш dataSource в блоке преобразования, потому что мы не заинтересованы в чатах, которые имеют сообщения.

Тогда мы преобразовываем значения в сигналы, опять же с помощью RACObserve.

Поскольку сигнал, создаваемый RACObserve будет запускатся с начальным значением свойства, которое будет равно nil, мы должны игнорировать его -ignore:. Оператор это то, что нам нужно.

Вторая часть задачи для того чтобы учитывать только первое входящее сообщение -Take:. Будет заботиться об этом. Сигнал будет завершен (и удален) сразу после получения первого значения.

Просто, для того чтобы все прояснить. Есть три новых сигнала, которые мы создали в этом коде. Первый был создан макросом RACObserve, второй по вызову -ignore: оператора на первом вновь созданном сигнале, а третий, по вызову -take: по сигналу, созданному -ignore:

Как и в предыдущем примере, нам нужен один сигнал на основе созданных сигналов. Мы используем -merge: для создания нового объединенного потока, так как мы не заботимся о значениях, как в предыдущем примере.

Время побочного эффекта!

Примечание: Мы не используем значения, которые приходят в сигнале. Однако х будет содержать полученное сообщение.

Теперь давайте немного поговорим о впечатлениях от Reactive Cocoa.

Что мне действительно нравится в Reactive Cocoa

1. Его легко начать использовать в проектах. Фреймворк задокументален, как сумасшедший. На GitHub есть много примеров, с подробным описанием каждого класса и метода, большое количество статей, видео и презентаций.

2. Вам не нужно полностью изменять свой стиль программирования. Во-первых, вы можете использовать существующие решения для проблем, таких как связывания UI, сетевые обертки, и другие решения с GitHub. Затем, шаг за шагом, вы можете понять все возможности Reactive Cocoa.

3. Он действительно меняет способ решения задач от императивниго к декларативному. Теперь, когда функциональный стиль программирования становится все более и более популярным в IOS сообществе, трудно для многих в корне изменить свой образ мышления. Reactive Cocoa помогает внести изменения, потому что он имеет много инструментов, которые помогут вам общаться в стиле «что делать», а не “как сделать“.

То, что я не нравиться в Reactive Cocoa

1. Широкое использование макросов RAC () или RACObserve ().

2. Иногда может быть трудно отлаживать код, так как использование RACSignals приводит к глубоким трассировкам стека.

3. Не type-safe (вы никогда не знаете, какой тип ожидать в блоке subscribeNext). Лучшее решение в этом случае, является документирование сигналов в публичном интерфейсе, как пример:

Я также не могу не упомянуть Swift

Reactive Cocoa написан на Objective-C и специально для Objective-C. Но, конечно, сейчас, когда Swift набирает популярность, разработчики фреймворков не сидят без дела. Они на самом деле пишут Swift API, для использования с Reactive Cocoa (Великий Swiftening близко). Скромненькая мы увидеть новую версию 3.0 с блэкджеком и шлюхами, дженериками и перегрузкой операторов.

Я уверена, что после этого RAC получит еще больше поклонников. Вскоре перфекционисты, которые проклинают макросы и не-безопасность типов не будут иметь аргументов, чтобы защитить себя и не использовать Reactive Cocoa.


Функциональный реактивный подход может упростить решения в ваших повседневных задачах. Может быть, во-первых, понятие RAC может показаться слишком сложным, его решения слишком громоздкими, и огромными, и число операторов будет сильно вас путать. Но позже, станет понятно, что все это имеет простую идею.

Вы представляете данные (входные или выходные), как поток. Поток, как трубу событий (данные, ошибки, заверншения). Сигнала и последовательность являются потоком. Сигнал управляемый поток: когда он что-то имеет, он передаст этого вам, пользовательский ввод, асинхронную загрузку с диска, например. Последовательность является потоком с выдвижным приводом: когда нужно что-то, вы будете тянуть это от последовательности — коллекции, например. Все остальные операторы преобразования и объединения все эти вещи вместе (приеобразование, фильтр, объединение, switchToLatest, дроссель и т.д.).

Кроме того, вы должны помнить, что все события доставляются абонентам в потоке, в котором они были созданы. Если вам нужно указать, что, применять данную RACScheduler (класс, похожий на очереди GCD, но с возможностью отмены) с помощью оператора -deliverOn:

Как правило, вы должны явно указать только [RACScheduler mainThreadScheduler] для обновления интерфейса, но вы можете написать свою собственную реализацию RACSceduler, когда вы имеете дело с чем-то конкретным, как CoreData.

Hedging d the price of cocoa has been rising for some

This preview shows page 1 – 3 out of 3 pages.

You’ve reached the end of your free preview.

Want to read all 3 pages?

  • TERM Two ’15
  • PROFESSOR Philip
  • TAGS long forward contracts, electricity wholesaler enters, long cocoa futures
Share this link with a friend:

Students who viewed this also studied

  • In addition if a company is listed in another country foreign exchange listing
  • Monash
  • BFF 3111 – Winter 2020

week2 tutorial audit.docx

  • What is difference between the combined Lewis and Davis traditional and Euro
  • Monash
  • BFF 3111 – Winter 2020

week 2 tutorial ibf.docx

  • presentation.docx
  • Monash
  • BFF 3111 – Winter 2020
  • Investment as by definition purchase of new housing is a part of investment
  • Monash
  • BFF 3111 – Winter 2020

Week2 tutorial macro.docx

  • BFF3111 Problem Set 1 – Solutions
  • Monash
  • BFF 3111 – Winter 2020

BFF3111 Problem Set 1 – Solutions

  • 108 Distinguish between funded and unfunded superannuation schemes How will the
  • Monash
  • BFF 3111 – Winter 2020

BFF3111 PS 9 – Solutions

Study on the go

  • d The price of cocoa has been rising for some times and recently hit an all
  • Monash
  • BFF 2751 – Fall 2020
  • c The Commonwealth Bank in Melbourne CBD has a large foreign exchange desk and
  • Monash University
  • BFF 2751 – Spring 2020

BFF2751 tutorial 1.docx

  • Anyway you have just been reading about a severe drought in Brazil which is the
  • Monash
  • BFF 2751 – Fall 2020
  • d It makes sense that Cadbury has been using long futures contracts written on
  • Monash
  • BFF 2751 – Fall 2020
  • questions1.pdf
  • Monash
  • BFF 2751 – Fall 2020
  • BFF2751 Tutorial 1 Philip Gray 2020 5 Question 3 a By entering a long futures
  • Monash
  • BFF 2751 – Fall 2020

What students are saying

As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

Kiran Temple University Fox School of Business ‘17, Course Hero Intern

I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

Dana University of Pennsylvania ‘17, Course Hero Intern

The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

Jill Tulane University ‘16, Course Hero Intern

Using ETFs To Hedge Against Rising Rates

September 29, 2020

The September Federal Reserve meeting passed without much fanfare, quieting markets that had been getting jittery about a rate hike. The central bank―eyeing the uncertainty of a presidential election in November―chose to delay its much-anticipated interest rate increase, but not for long.

After the no-change decision, Federal Reserve Board Chair Janet Yellen told the press that she expects a rate hike sometime this year. That means that an increase may come either at the November or December meeting, with most economists targeting the latter as the likeliest option for a move.

If so, it will be deja vu, for it was last December when the Fed hiked rates for the first time in nearly a decade after months of anticipation. Another hike this December would push the federal funds rate up by 25 basis points to a range of 0.50-0.75% from 0.25-0.50%.

Rates Down From Start Of Year

Market-set rates are up from their lows ahead of the potential rate increase, though they’re down significantly from where they were at the start of the year.

The two-year Treasury bond yield, for example, is at 0.75%, up from a low of 0.50% in June, but down from 1.05% on Dec. 31. At the same time, the 10-year Treasury bond yield is at 1.56%, up from a record-low 1.32% in July, but down from 2.27% on Dec. 31.

It’s impossible to say whether the next Fed hike will be the catalyst that finally spurs a big rally in interest rates (and sell-off in bonds). But for investors who want to protect themselves, there are many tools available in the ETF world to minimize the impact of higher rates, or even capitalize on them.

Lower Duration Bonds

The classic advice given to investors in a rising rate environment is to reduce the duration of your bond portfolio. Duration is a measure of interest rate risk and is based on a bond’s maturity and coupon payments.

A higher-duration portfolio has more interest rate risk than a lower-duration portfolio. By reducing duration―for example, by buying shorter-term bonds―a portfolio will have less interest rate risk. The flip side is that the portfolio will probably have a smaller yield as well.

There are plenty of low-duration ETFs on the market that can help reduce the average duration of an investor’s portfolio, including the iShares 1-3 Year Treasury Bond ETF (SHY), the PIMCO Enhanced Short Maturity Active ETF (MINT) and many more.

Inverse Bond ETFs

Another method with which to hedge against rising rates is inverse ETFs. These funds short Treasury bonds, meaning they rise in price when interest rates increase (bond prices and rates generally move inversely).

The ProShares Short 20+ Year Treasury ETF (TBF) provides daily inverse exposure to Treasurys with maturities greater than 20 years.

Meanwhile, the Sit Rising Rate ETF (RISE) shorts futures contracts on two-, five- and 10-year Treasurys with a specific goal of maintaining a duration of negative 10. That means if interest rate rise by 1%, the ETF should rise by 10% (and vice versa).

TBF, RISE and similar ETFs can be used to hedge other bond funds in a portfolio or as stand-alone products to speculate on the direction of interest rates.

Keep in mind, however, that any product that shorts positive-yielding bonds will have to pay a cost to maintain that position over time. This can result in losses even if interest rates remain flat.


Long/Short Bond Funds

Another group of ETFs attempts to reduce duration by simultaneously holding long and short positions in bonds. The WisdomTree Barclays US Aggregate Bond Negative Duration Fund (AGND) holds the bonds in the Barclays Aggregate Bond Index and a short position in Treasurys at the same time. The result is a portfolio of bonds with a duration of negative 5.

Once again, AGND could be used as a stand-alone product to speculate on interest rates or combined with, say, another position in the iShares Core U.S. Aggregate Bond ETF (AGG) (which incidentally has a duration of positive 5) to reduce an investor’s interest rate risk.

ETFs that use a similar strategy as AGND’s include the VanEck Vectors Treasury-Hedged High Yield Bond ETF (THHY) and the ProShares High Yield-Interest Rate Hedged ETF (HYHG), which short Treasurys to hedge a portfolio of high-yield bonds. Both target a duration of zero.



For investors who want to do away completely with interest rate risk, a straightforward solution floating-rate ETFs. The iShares Floating Rate Bond ETF (FLOT) holds a basket of bonds with maturities of five years or less. As floating rate notes, the interest rates on these securities resets periodically based on market rates; so if rates increase, the payout increases too (the downside is that rates on floaters will tend to be lower to account for the smaller risk).

Floaters are attractive compared to fixed-rate bonds when rates are expected to increase, but not as attractive when rates are expected to decline.

The PowerShares Senior Loan Portfolio (BKLN) is another type of floating-rate ETF. It tracks an index of the 100 largest bank loans with floating rate coupons. The fund has little interest rate risk, but relatively high credit risk due to its below-investment-grade portfolio.


Best Binary Options Brokers 2020:
  • Binarium

    The Best Binary Options Broker 2020!
    Perfect For Beginners and Middle-Leveled Traders!
    Free Demo Account!
    Free Trading Education!
    Get Your Sign-Up Bonus Now!

  • Binomo

    Good Broker For Experienced Traders!

Like this post? Please share to your friends:
Binary Options Trading: Brokers Reviews
Leave a Reply

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: