Hedging Against Falling Cocoa Prices using Cocoa Futures

Best Binary Options Brokers 2020:
  • BINARIUM
    BINARIUM

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

  • BINOMO
    BINOMO

    Recommended Only For Experienced Traders!

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

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

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

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

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

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:

Best Binary Options Brokers 2020:
  • BINARIUM
    BINARIUM

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

  • BINOMO
    BINOMO

    Recommended Only For Experienced Traders!

Все операции с 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

  • Solutions-Tutorial questions.pdf
  • University of Adelaide
  • CORPFIN 7020 – Fall 2020
  • DSerFINC3012MajorAssignmentS22020.docx
  • University of Sydney
  • FINC 3012 – Fall 2020
  • FINC3012 GA
  • University of Sydney
  • FINC 3012 – Winter 2020
  • ACW1100 S2 2020 Main Exam Paper-Solution-student version.doc
  • Monash University
  • ACW 1100 – Fall 2020

ACW1100 S2 2020 Main Exam Paper-Solution-student version.doc

  • Masterclass Solutions.docx
  • Monash University
  • ACF 1100 – Spring 2020
  • Masterclass Questions.docx
  • Monash University
  • ACF 1100 – Spring 2020

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

Ivory Coast farmers push back against cocoa output cap

SAN PEDRO, Ivory Coast (Reuters) – Cocoa farmers in Ivory Coast say they plan to ramp up production and establish new plantations, potentially jeopardizing a new policy to cap output and boost prices from next year.

The West African country’s cocoa regulator (CCC) said in October it would cut production from 2.2 million tonnes to 2 million tonnes from next season in a bid to deter farmers from overproducing after Ivory Coast and neighboring Ghana introduced a plan to raise farmers’ income.

The world’s top two cocoa producers set a fixed $400 a tonne ‘living income differential’ (LID) in July on all their cocoa contracts for the 2020/21 season.

They also pledged to use the money raised to guarantee farmers 70% of a $2,600 a tonne target price.

This should equate next season to a price for farmers of at least 1,000 CFA francs ($1.70) per kilogram, versus 825 for this season, though it could be well above that if international prices rise.

Benchmark cocoa futures on ICE hit their highest in a year and a half in November, helped in part by the LID announcement, but they could fall again if output in West Africa surges.

Seventeen farmers who spoke to Reuters this month said a lack of business alternatives outside the cocoa industry leaves them with little choice but to expand output and make the most of improved prices.

The farmers’ comments raise questions about whether the world’s No. 1 cocoa producer can implement production cuts in a country that relies on a million small producers who operate independently and have little incentive to cut back.

“I’ve already cleared 4 hectares of forest in July that my family can plant with cocoa in the April rainy season and I’m not going to stop that,” said Sylvain Daple, who tends three hectares in San Pedro, the heart of Ivory Coast’s new cocoa belt.

His view was echoed by other farmers in Daloa, Issia, Divo, Gagboa, Soubre and Meagui – territories which account for nearly 70% of the Ivorian crop.

Most of them said the authorities needed to do more to encourage diversification.

“If we have alternatives, options as profitable as cocoa, then we will limit our fields and our production, otherwise it is not possible,” said father-of-four Donald Assie in the village of Bobia near Gagboa.

The CCC declined to comment. When it announced the output cap in October it did not say how it would be implemented and enforced.

“I really don’t see how they can do it, I don’t see any sort of plan (and) I question whether they have one,” said an industry expert, who did not wish to be identified.

“If they were prepared to expel hundreds of thousands of women and children from (protected) forests that would impact production but what do you do with tens of thousands of refugees?” the expert said.

He said Ivory Coast has in the past expelled people on a small scale, but that never significantly curbed production.

Ivory Coast’s protected forests produce 500,000 tonnes of cocoa annually, according to official data.

“The solution is to destroy all the plantations that are in the protected forests and in the parks,” said Salif Diomande, who purchases beans from farmers to sell to exporters.

Ivory Coast has more than 2.5 million hectares of cocoa. The sector accounts for 15% of GDP and 40% of exports.

Reporting by Ange Aboa; Additional reporting by Maytaal Angel in London,; Editing by Alessandra Prentice/Susan Fenton

FUTURES/OPTIONS Livestock Prices Drop; Cocoa Futures Rally

By The Associated Press

    Jan. 20, 1984

Livestock and meat futures prices fell sharply yesterday in active trading on the Chicago Mercantile Exchange in the wake of an Agriculture Department report on the number of cattle in feedlots.

Live and feeder cattle for delivery in the next few months fell the daily limit of 1.5 cents in a selloff prompted by the report and fueled by trends on price charts, said Chuck Levitt, a livestock analyst in Chicago with Shearson/American Express.

A key number in the report was the estimate that marketing of feedlot cattle in the first quarter of this year will be 1 percent higher than in the same period of 1983, he said.

Fed Cattle Numbers Drop

Over all, the report showed a 4 percent decrease from last year in the number of cattle being fed for the consumer market as of Jan. 1 in 13 major beef-producing states.

Live hogs for delivery in the next few months also fell the daily limit of 1.5 cents, and frozen pork bellies were down the 2-cent daily limit in all contract months except July. Mr. Levitt attributed the drop to ”spillover” from the cattle report and forecasts of warmer temperatures for next week.

Cocoa futures prices rose sharply on the Coffee, Sugar and Cocoa Exchange in New York. Mike Paulenoff, a cocoa analyst in New York with Smith Barney, Harris Upham & Company, said the rally was ccaused by technical factors, such as trends on price charts.

Soybeans Up, Grains Off

Soybean futures prices were higher and grain prices were mostly lower on the Chicago Board of Trade.

Susan Hackmann, a grain analyst in Chicago with A. G. Becker-Paribas, said some support came from outside markets, where the dollar was weaker against major foreign currencies and precious metals prices were higher.

Volume was moderate to heavy at the open and close of the session, but dried up at midday, she said.

Best Binary Options Brokers 2020:
  • BINARIUM
    BINARIUM

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

  • BINOMO
    BINOMO

    Recommended Only For Experienced Traders!

Like this post? Please share to your friends:
Binary Options Brokers, Signals and Strategies
Leave a Reply

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