usdjpy daily analytics 02 07

USD/JPY: снижение в приоритете

Пара USD/JPY растет в ходе азиатской сессии среды, восстанавливая позиции после обвала в начале недели, в результате которого инструмент снизился до 142,68 и, тем самым, протестировал минимальный уровень с начала июня. Сегодня пара удерживает позиции в районе 144,00, в то время как участники рынка ожидают появления новых новостных драйверов.

Ранее поддержку иене оказали макроэкономические данные из Японии. Так, в июне индекс деловой активности в производственном секторе (PMI) вырос с 49,4 до 50,1 пункта, впервые за 13 месяцев выйдя в зону роста. Хотя объёмы новых заказов и продаж остались практически без изменений, сам факт превышения показателем 50-пунктной отметки воспринимается рынком как важный шаг к восстановлению внутренней производственной активности. Кроме того, позитивную динамику подтвердил и квартальный опрос крупных производителей Tankan от Банка Японии, согласно которому индекс уверенности вырос до 13 при прогнозе в 10. Эти данные сигнализируют о стабильном внутреннем спросе, что создаёт основу для ужесточения денежно-кредитной политики — в частности, возможного повышения процентной ставки Банком Японии уже во второй половине года. Глава Банка Японии Уэда в ходе своего вчерашнего выступления на экономическом форуме в Синтре повторил, что любые будущие повышения ставок будут зависеть от общей динамики инфляции. В условиях, когда инфляция превышает целевой уровень в 2%, регулятору остаётся всё меньше оснований сохранять сверхмягкую политику.

В то же время экономическая ситуация в США выглядит менее оптимистичной. Индекс PMI в производственном секторе, хотя и немного восстановился в июне (с 48,5 до 49 пунктов), всё ещё остаётся ниже отметки 50, указывая на продолжающийся промышленный спад, что повышает вероятность смягчения политики ФРС в ближайшие месяцы. Рынок уже закладывает более 90% вероятности снижения ставки на сентябрьском заседании ФРС, в то время как некоторые участники рынка допускают смягчение американской монетарной политики уже в июле. Всё это способствует ослаблению доллара. Накануне индекс американской валюты (DXY) достиг минимальных значений с февраля 2022 года на уровне 96,40. Таким образом, учитывая высокую вероятность ужесточения монетарной политики Банком Японии и растущие ожидания снижения ставки ФРС, распродажа пары USD/JPY может продолжиться.

USD/JPY Sell Stop 143.50 TP 141.00 SL 144.30

usdjpy daily analytics 02 07

Аналитические обзоры и комментарии к ним отражают субъективное мнение авторов и не являются рекомендацией к торговле. AMarkets не несет ответственности за возможные убытки в случае использования материалов обзора.

Подписывайтесь на наши социальные сети:

В разделе аналитики вы также можете найти актуальный анализ от Артёма Деева по другим активам и валютным парам.
Автор статьи – Артём Деев, ведущий аналитик AMarkets

The post USD/JPY: снижение в приоритете first appeared on Online broker AMarkets.

XAUUSD

Самые прибыльные сделки клиентов AMarkets с 23 по 27 июня 2025 года

Наиболее прибыльной на прошлой неделе оказалась сделка на продажу золота (XAU/USD). Трейдер заработал 40,6% за 4 торговых дня или $140 690, открыв короткую позицию объемом 20.01 лота и определив начало нисходящего движения инструмента.

XAUUSD

Продажа 24.06.2025 в 01:59 EEST по цене $3355.02,
Покупка 27.06.2025 в 14:27 EEST по цене $3284.71.

Среди валютных пар самой прибыльной сделкой оказалась покупка EUR/USD. Клиент открыл длинную позицию объемом 5 лотов по восходящему тренду и за 4 торговых дня заработал 10.4% или $11 435.

EURUSD

Покупка 23.06.2025 в 12:35 EEST по цене 1.14983,
Продажа 26.06.2025 в 11:14 EEST по цене 1.17270.

Пополните счет от $300 и получите торговый бонус +15%*.

Акция действует до 4 июля включительно. Для зачисления бонуса, после пополнения обратитесь в службу клиентской поддержки AMarkets и сообщите промокод BESTTRADE.

*В программе участвует счет Standard на платформе MetaTrader 4 и MetaTrader 5 в долларах и рублях.

The post Самые прибыльные сделки клиентов AMarkets с 23 по 27 июня 2025 года first appeared on Online broker AMarkets.

XAGUSD

Самые прибыльные сделки клиентов AMarkets с 16 по 20 июня 2025 года

Наиболее прибыльной сделкой на прошлой неделе оказалась продажа XAG/USD. Трейдер заработал 3.96% или $14 700 за четыре торговых дня, открыв короткую позицию объемом 2 лота и определив начало нисходящего движения.

XAGUSD

Продажа 17.06.2025 в 18:07 ЕESТ по цене $37.147,
Покупка 20.06.2025 в 09:07 ЕESТ по цене $35.677.

Среди валютных пар самой прибыльной сделкой оказалась продажа NZD/USD. Клиент открыл короткую позицию объемом 7 лотов по нисходящему тренду и за три торговых дня заработал 1.68% или $7147.

NZDUSD

Продажа 17.06.2025 в 10:27 ЕESТ по цене 0.60687,
Покупка 19.06.2025 в 18:09 ЕESТ по цене 0.59666.

Пополните счет от $300 и получите торговый бонус +15%*.

Акция действует до 27 июня включительно. Для зачисления бонуса, после пополнения обратитесь в службу клиентской поддержки AMarkets и сообщите промокод BESTTRADE.

*В программе участвует счет Standard на платформе MetaTrader 4 и MetaTrader 5 в долларах и рублях.

The post Самые прибыльные сделки клиентов AMarkets с 16 по 20 июня 2025 года first appeared on Online broker AMarkets.

FrPpAigm3PY

Автоматизация обменника валют: Пишем скрипт с поддержкой реального времени

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

Шаг 1: Определение требований

Для создания скрипта с поддержкой реального времени нам нужно:

  • Получать актуальные курсы валют через API.

  • Автоматически обновлять курсы с заданной периодичностью.

  • Предоставлять пользователю возможность конвертировать валюты через консоль или веб-интерфейс.

  • Обеспечить обработку ошибок и логирование для мониторинга.

Мы будем использовать ExchangeRate-API для получения данных и библиотеку schedule для планирования обновлений курсов. Также мы добавим веб-интерфейс с использованием FastAPI для удобного взаимодействия.

Шаг 2: Настройка окружения

Установка зависимостей

Установим необходимые библиотеки:

pip install requests python-dotenv schedule fastapi uvicorn cachetools
  • requests: Для запросов к API.

  • python-dotenv: Для безопасного хранения API-ключа.

  • schedule: Для периодического обновления курсов.

  • fastapi и uvicorn: Для создания веб-интерфейса.

  • cachetools: Для кэширования данных.

Безопасное хранение API-ключа

Создайте файл .env в корне проекта:

API_KEY=ваш_ключ_здесь

Добавьте .env в .gitignore, чтобы исключить его из системы контроля версий.

Шаг 3: Создание базового скрипта

Мы создадим скрипт, который:

  • Периодически обновляет курсы валют.

  • Кэширует данные для минимизации запросов к API.

  • Предоставляет API-эндпоинт для конвертации валют.

Создайте файл realtime_currency_exchange.py:

import requests
import schedule
import time
import threading
from cachetools import TTLCache
from dotenv import load_dotenv
import os
from fastapi import FastAPI, HTTPException
import uvicorn
import logging

# Настройка логирования
logging.basicConfig(filename="exchange.log", level=logging.INFO,
                    format="%(asctime)s - %(levelname)s - %(message)s")

# Кэш на 1 час
cache = TTLCache(maxsize=1, ttl=3600)

# Загрузка API-ключа
def load_api_key():
    load_dotenv()
    api_key = os.getenv("API_KEY")
    if not api_key:
        raise ValueError("API ключ не найден в файле .env")
    return api_key

# Получение курсов валют
def get_exchange_rates(api_key):
    try:
        url = f"https://v6.exchangerate-api.com/v6/{api_key}/latest/USD"
        response = requests.get(url, timeout=5)
        response.raise_for_status()
        data = response.json()
        
        if data["result"] == "success":
            cache["rates"] = data["conversion_rates"]
            logging.info("Курсы валют успешно обновлены")
        else:
            logging.error("Ошибка API: " + data.get("error-type", "Неизвестная ошибка"))
    except requests.exceptions.RequestException as e:
        logging.error(f"Ошибка сети: {e}")

# Периодическое обновление курсов
def schedule_rate_updates(api_key):
    schedule.every(1).hours.do(get_exchange_rates, api_key=api_key)
    while True:
        schedule.run_pending()
        time.sleep(60)

# Конвертация валют
def convert_currency(amount, from_currency, to_currency):
    rates = cache.get("rates")
    if not rates:
        raise ValueError("Курсы валют недоступны")
    
    try:
        if not isinstance(amount, (int, float)) or amount <= 0:
            raise ValueError("Сумма должна быть положительным числом")
        if from_currency not in rates or to_currency not in rates:
            raise ValueError("Неверный код валюты")
        
        if from_currency != "USD":
            amount = amount / rates[from_currency]
        converted_amount = amount * rates[to_currency]
        return round(converted_amount, 2)
    except ZeroDivisionError:
        raise ValueError("Курс валюты равен нулю")

# FastAPI приложение
app = FastAPI(title="Currency Exchange API")

@app.get("/rates")
async def get_rates():
    rates = cache.get("rates")
    if not rates:
        raise HTTPException(status_code=503, detail="Курсы валют недоступны")
    return {"currencies": list(rates.keys()), "rates": rates}

@app.post("/convert")
async def convert(data: dict):
    try:
        amount = float(data["amount"])
        from_currency = data["from_currency"].upper()
        to_currency = data["to_currency"].upper()
        result = convert_currency(amount, from_currency, to_currency)
        logging.info(f"Конвертация: {amount} {from_currency} -> {result} {to_currency}")
        return {"result": result, "to_currency": to_currency}
    except ValueError as ve:
        logging.error(f"Ошибка ввода: {ve}")
        raise HTTPException(status_code=400, detail=str(ve))
    except Exception as e:
        logging.error(f"Произошла ошибка: {e}")
        raise HTTPException(status_code=500, detail="Внутренняя ошибка сервера")

# Запуск обновления курсов в фоновом потоке
def start_background_updates(api_key):
    thread = threading.Thread(target=schedule_rate_updates, args=(api_key,), daemon=True)
    thread.start()

if __name__ == "__main__":
    api_key = load_api_key()
    get_exchange_rates(api_key)  # Первичное получение курсов
    start_background_updates(api_key)  # Запуск обновлений
    uvicorn.run(app, host="0.0.0.0", port=8000)

Объяснение кода

  1. Автоматизация обновления курсов:

    • Библиотека schedule обновляет курсы каждый час с помощью функции schedule_rate_updates.

    • Обновления выполняются в фоновом потоке, чтобы не блокировать основной процесс.

  2. Кэширование:

    • cachetools.TTLCache хранит курсы валют в памяти, минимизируя запросы к API.

  3. Веб-интерфейс:

    • FastAPI предоставляет два эндпоинта:

      • /rates: Возвращает список доступных валют и их курсы.

      • /convert: Выполняет конвертацию на основе JSON-запроса.

  4. Логирование:

    • Все операции и ошибки записываются в файл exchange.log для мониторинга.

  5. Обработка ошибок:

    • Проверяется корректность ввода, доступность курсов и сетевые сбои.

Шаг 4: Использование скрипта

  1. Запуск скрипта:

    python realtime_currency_exchange.py
  2. Доступ к API:

    • Откройте браузер или используйте curl:

      • Получение курсов: curl http://localhost:8000/rates

      • Конвертация: curl -X POST -H «Content-Type: application/json» -d ‘{«amount»: 100, «from_currency»: «EUR», «to_currency»: «RUB»}’ http://localhost:8000/convert

  3. Пример ответа:

    {"result": 8500.0, "to_currency": "RUB"}

Шаг 5: Оптимизация и надежность

5.1. Ограничение скорости запросов

Чтобы не превышать лимиты API, добавим ratelimiter:

Установка:

pip install ratelimiter

Обновление функции:

from ratelimiter import RateLimiter

rate_limiter = RateLimiter(max_calls=10, period=60)

def get_exchange_rates(api_key):
    with rate_limiter:
        if "rates" in cache:
            return
        try:
            url = f"https://v6.exchangerate-api.com/v6/{api_key}/latest/USD"
            response = requests.get(url, timeout=5)
            response.raise_for_status()
            data = response.json()
            if data["result"] == "success":
                cache["rates"] = data["conversion_rates"]
                logging.info("Курсы валют успешно обновлены")
        except requests.exceptions.RequestException as e:
            logging.error(f"Ошибка сети: {e}")

5.2. Асинхронные запросы

Для повышения производительности можно заменить requests на aiohttp для асинхронных запросов:

import aiohttp

async def get_exchange_rates_async(api_key):
    with rate_limiter:
        if "rates" in cache:
            return
        try:
            async with aiohttp.ClientSession() as session:
                async with session.get(f"https://v6.exchangerate-api.com/v6/{api_key}/latest/USD", timeout=5) as response:
                    response.raise_for_status()
                    data = await response.json()
                    if data["result"] == "success":
                        cache["rates"] = data["conversion_rates"]
                        logging.info("Курсы валют успешно обновлены")
        except aiohttp.ClientError as e:
            logging.error(f"Ошибка сети: {e}")

Интегрируйте это в schedule_rate_updates с помощью asyncio.

Шаг 6: Тестирование

  1. Тест обновления курсов:

    • Проверьте файл exchange.log, чтобы убедиться, что курсы обновляются каждый час.

  2. Тест API:

    • Отправьте несколько запросов к /convert с разными валютами и суммами.

    • Попробуйте некорректные данные (например, отрицательные суммы или несуществующие валюты).

  3. Тест надежности:

    • Отключите интернет и проверьте, как скрипт обрабатывает сбои.

    • Убедитесь, что кэш позволяет выполнять конвертации без новых запросов.

Шаг 7: Дополнительные улучшения

  1. Фронтенд:

    • Добавьте HTML-страницу с JavaScript для взаимодействия с API.

  2. Мониторинг:

    • Настройте уведомления (например, через email) при сбоях API.

  3. Кэширование на диске:

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

Пример кэширования на диске:

import pickle

def save_rates_to_file():
    rates = cache.get("rates")
    if rates:
        with open("rates_cache.pkl", "wb") as f:
            pickle.dump(rates, f)

def load_rates_from_file():
    try:
        with open("rates_cache.pkl", "rb") as f:
            cache["rates"] = pickle.load(f)
    except FileNotFoundError:
        pass

Заключение

скрипт обменника валют с поддержкой реального времени, представленный в этой статье, демонстрирует, как автоматизировать получение и обновление курсов валют, обеспечивая высокую производительность и надежность. Использование кэширования, асинхронных запросов и веб-интерфейса делает его подходящим для реальных приложений. Вы можете расширить функциональность, добавив фронтенд, мониторинг или поддержку нескольких API, чтобы адаптировать скрипт под ваши задачи. Автоматизация позволяет минимизировать ручной труд и обеспечить актуальность данных в реальном времени.

oil daily analytics 20 06

Brent: будет ли $150 за баррель?

Нефть марки Brent в ходе торговой сессии пятницы удерживает позиции вблизи $77 за баррель. Накануне стоимость нефти обновила 6-месячный максимум и протестировала отметку $79,30 за баррель, тем не менее закрепиться на новых уровнях покупателям пока не удалось.

Текущая динамика нефти демонстрирует насколько уязвим глобальный рынок перед лицом геополитических потрясений и ограниченного предложения. Последние события на Ближнем Востоке с вероятностью вовлечения в конфликт США усилили рыночные опасения относительно потенциальных перебоев в поставках из региона, от которого зависит стабильность всего глобального энергетического рынка. Участники рынка внимательно следят за ситуацией вокруг Ормузского пролива — узкого морского канала, через который ежедневно проходит до трети мировых объёмов нефти. Любая угроза судоходству в этом месте мгновенно отражается в ценах: по оценке Goldman Sachs, текущий конфликт уже добавил около $10 за баррель к стоимости нефти, формируя так называемую геополитическую премию. Если канал будет полностью заблокирован, стоимость барреля нефти может резко вырасти, особенно если кризис затянется или приведёт к еще большей военной эскалации.

Дополнительную поддержку котировкам оказали последние данные по запасам нефти в США. В частности, Администрация энергетической информации сообщила в среду, что запасы нефти в США на прошлой неделе снизились более чем на 11 млн баррелей, что стало рекордным показателем за последние 12 месяцев. По мнению аналитиков, тенденция снижения запасов сможет сохраниться на протяжении всего летнего сезона, который всегда характеризуется повышенным спросом на топливо на фоне активных автомобильных поездок и авиаперелётов. В текущих условиях немного ограничить рост цен на нефть может высокий уровень добычи сланцевой нефти в США и наличие резервных мощностей в странах ОПЕК. Однако, если конфликт на Ближнем Востоке перерастёт в масштабный кризис с фактической блокадой Ормузского пролива, нефть марки Brent может подорожать до $150 за баррель.

Brent Buy Stop 78.50 TP 85.00 SL 76.50

oil daily analytics 20 06

Аналитические обзоры и комментарии к ним отражают субъективное мнение авторов и не являются рекомендацией к торговле. AMarkets не несет ответственности за возможные убытки в случае использования материалов обзора.

Подписывайтесь на наши социальные сети:

В разделе аналитики вы также можете найти актуальный анализ от Артёма Деева по другим активам и валютным парам.
Автор статьи – Артём Деев, ведущий аналитик AMarkets

The post Brent: будет ли $150 за баррель? first appeared on Online broker AMarkets.

eurusd daily analytics 18 06

EUR/USD: важный день для обоих активов

Пара EUR/USD восстанавливает позиции в ходе азиатской сессии среды, корректируясь после снижения накануне. Инструмент торгуется на уровне 1,1520, в то время как участники рынка готовятся к заседанию ФРС, итоги которого будут подведены сегодня вечером.

Опубликованная вчера макроэкономическая статистика из США снова разочаровала покупателей доллара. Так, розничные продажи снизились в мае на 0,9%, что стало одним из худших результатов за последний год. Статистика явно указывает на то, что американские потребители снижают расходы в ожидании новых торговых пошлин со стороны республиканской администрации. Спад также был зафиксирован и в динамике промышленного производства, которое снизилось в прошлом месяце на 0,2%, подчеркивая уязвимость сектора в условиях падения глобального спроса и роста геополитических рисков.

Сегодня в центре внимания трейдеров заседание Федеральной резервной системы (ФРС). Изменение ставки маловероятно, поэтому рынок с большим интересом будет ждать пресс-конференцию главы ФРС Джерома Пауэлла, пытаясь найти намеки на сроки возможного смягчения монетарной политики. Учитывая признаки замедления инфляции, ухудшение ситуации на рынке труда и торговую напряженность, вероятность снижения ставки в сентябре продолжает расти, оказывая давление на доллар. Если ФРС подтвердит готовность к более мягкому курсу, распродажа американской валюты продолжится.

Данные из еврозоны, тем временем, поддерживают европейскую валюту. Индекс экономических настроений ZEW в еврозоне вырос в июне с 11,6 до 35,3 пункта, демонстрируя рост бизнес-оптимизма даже в условиях торгового конфликта с США. Повышение доходности по немецким облигациям также указывает на устойчивый интерес к европейским активам со стороны инвесторов. Еще одним фактором роста евро остается низкая инфляция, которая стабилизировалась в пределах целевого ориентира ЕЦБ на уровне 2%. На этом фоне руководство европейского регулятора всерьез рассматривает возможность завершения текущего цикла снижения ставок, что на контрасте с действиями ФРС повышает привлекательность покупки именно европейской валюты.

EUR/USD Buy Stop 1.1550 TP 1.1700 SL 1.1500

eurusd daily analytics 18 06

Аналитические обзоры и комментарии к ним отражают субъективное мнение авторов и не являются рекомендацией к торговле. AMarkets не несет ответственности за возможные убытки в случае использования материалов обзора.

Подписывайтесь на наши социальные сети:

В разделе аналитики вы также можете найти актуальный анализ от Артёма Деева по другим активам и валютным парам.
Автор статьи – Артём Деев, ведущий аналитик AMarkets

The post EUR/USD: важный день для обоих активов first appeared on Online broker AMarkets.

dollar daily analytics 16 06

Что делать с долларом?

Индекс доллара (DXY) снижается в ходе азиатской сессии понедельника и торгуется на уровне 98.00. Американская валюта удерживает позиции вблизи многолетних минимумов, что указывает на общее ухудшение рыночных настроений и подрыв доверия к доллару как к защитному активу.

Макроэкономические данные, опубликованные на прошлой неделе, укрепили уверенность трейдеров в том, что ФРС может вскоре возобновить смягчение национальной монетарной политики. Бюро трудовой статистики сообщило, что в мае индекс цен производителей (PPI) вырос на 2,6% в годовом выражении, превысив апрельские 2,4%. Однако базовый PPI — без учёта цен на продовольствие и энергоносители — снизился с 3,1% до 3%, указывая на ослабление инфляционного давления. Отдельные вопросы остаются к рынку труда США. Первичные заявки на пособие по безработице за неделю, завершившуюся 7 июня, составили 248 тыс., что выше прогноза 240 тыс. При этом общее количество продолжающихся заявок достигло 1,956 млн — максимума с времён пандемии COVID-19. По данным инструмента FedWatch Tool, вероятность снижения ставки ФРС в сентябре достигла 66%, в то время как по итогам года ставка может быть снижена на 50 базисных пунктов.

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

Тем временем ситуация на Ближнем Востоке продолжает обостряться: конфликт между Израилем и Ираном вступил уже в четвёртый день. Взаимные ракетные обстрелы продолжаются, несмотря на многочисленные призывы мирового сообщества к переговорам. Любая дальнейшая эскалация способна усилить спрос на защитные активы, но не на доллар, доверие к которому было сильно подорвано из-за торговой политики Трампа. В текущих условиях трейдеры предпочитают инвестировать в иену, франк и золото. Учитывая сказанное, короткие позиции по DXY остаются в приоритете.

DXY Sell Stop 97.70 TP 96.50 SL 98.20

dollar daily analytics 16 06

Аналитические обзоры и комментарии к ним отражают субъективное мнение авторов и не являются рекомендацией к торговле. AMarkets не несет ответственности за возможные убытки в случае использования материалов обзора.

Подписывайтесь на наши социальные сети:

В разделе аналитики вы также можете найти актуальный анализ от Артёма Деева по другим активам и валютным парам.
Автор статьи – Артём Деев, ведущий аналитик AMarkets

The post Что делать с долларом? first appeared on Online broker AMarkets.