Страницы: 1
RSS
Дневник трейдера, Расчет пунктов различных валютных пар и CFD
 
Здравствуйте Уважаемые!!!


Помогите решить задачку. Задачка для меня сложная, поэтому и прошу помощи.

Имеем 3 вида котировок

2 знака после запятой GOLD/CFD 1664,55
3 знака после запятой EUR/JPY 93,522
5 знаков после запятой EUR/USD 1,35505

Появилась сложность при расчетах.

2 строка, в ячейке M3 используется в расчетах умножение на 10
3 строка, в ячейке M3 используется в расчетах умножение на 100
4 строка, в ячейке M3 используется в расчетах умножение на 10000

Нужна единая формула. Не меняя основного скелета, но с учетом приведенных ниже условий.
Какие условия должна содержать формула, чтобы производить правильное деление?
Возьму на примере 2 строки

Если ячейка F2 содержит CFD то делим на 10 в противном случае умножение на 10000
Если ячейка F2 содержит JPY то делим на 100 в противном случае умножение на 10000
Если ячейка F2 содержит USD то делим на 10000 в противном случае умножение на 10000

http://prntscr.com/rw2dy

Готов при правильном решении кинуть на телефон фин средства в размере 200 руб.
Изменено: Семён Елизаров - 08.02.2013 11:29:01
 
=ОКРУГЛ(ЕСЛИ(ИЛИ(G2="";I2="" ;) ;0;ЕСЛИ(C2="Sell";(G2-I2);ЕСЛИ(C2="buy";(I2-G2);)))*(1&ПОВТОР(0;ДЛСТР(ПСТР(G2;ПОИСК(",";G2)+1;15))-1));2)

 :D
 
Приладил, ничего не вышло...пишет ошибку "(
 
Nic70y, на кол-во знаков в формуле лучше не полагаться - котировка может быть с нулями в конце (напр., для EUR/JPY будет фактически равна 93,520, отображена как 93,52, а обрабатываться должна как "трехзначная")
Изменено: ikki - 07.02.2013 22:37:52
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Получается будут косяки?
Изменено: Семён Елизаров - 07.02.2013 22:49:41
 
Где пустые ячейки в формуле появляется #знач ...скелет предыдущий не учтен, возможен ли другой вариант где учитывался бы ноль?
Изменено: Семён Елизаров - 07.02.2013 22:52:41
 
Семён Елизаров, если вариант ikki возможен тогда текстовый формат, а с формулой поспешил:

=ЕСЛИ(C2="Sell";G2-I2;I2-G2)*ЕСЛИ(ИЛИ(G2="";I2="" ;) ;0;(1&ПОВТОР(0;ДЛСТР(ПСТР(G2;ПОИСК(",";G2)+1;15))-1)))
Изменено: Nic70y - 08.02.2013 00:52:53
 
Все равно не то что нужно получается, поставил для столбца G и I текстовый формат....при вычислении 1,3520+1,3540 ответ получается 2 пп, что не есть истина (ответ 20 пп). А нельзя сделать формулу что бы ссылалась именно на те условия которые я описал выше. Если тикер в конце столбце F (по умолчанию для начальной формулы F2) содержит котировку JPY умножение на 100, если содержит USD умножение на 10000, если содержит CFD умножение на 10. Давно бьюсь над этой задачей еще не встречал аналогов.
P.S. Тут такие мысли сразу говорю могу написать бред, но вижу как то так, что сначала в формуле пойдет =ЕСЛИ(ЕПУСТО(G7);0;ЕСЛИ(ЕПУСТО(I7);0 =ЕСЛИ(F2="JPY"; расчет для buy и sell с умножение на 100; расчет для buy и sell с умножение на 10000); =ЕСЛИ(F2="CFD"; расчет для buy и sell с делением на 10; расчет для buy и sell с делением на 10000); =ЕСЛИ(F2="USD"; расчет для buy и sell с умножение на 10000; расчет для buy и sell с умножение на 10000) ; )))
Понимаю что выглядит как бред, но вижу решение как то так.
Изменено: Семён Елизаров - 08.02.2013 11:30:13
 
Если я правильно понял
 
Блин себя запутал и других запутал с делением (в голову встряло) умножать там нужно, ну вот что то хоть начало получатся
=ЕСЛИ(ЕПУСТО(G2);0;ЕСЛИ(ЕПУСТО(I2);0)+ЕСЛИ(F2="CFD";ЕСЛИ(C2="Sell";(G2-I2)*10;ЕСЛИ(C2="buy";(I2-G2)*10;ЕСЛИ(C2="Sell";(G2-I2)*10000;ЕСЛИ(C2="buy";(I2-G2)*10000;)))))) это все первая часть уравнения для CFD, нужно еще добавить для JPY где умножаем на 100 и для USD где умножаем на 10000
Странно, когда значение забиваю результат не сразу показывает.
Изменено: Семён Елизаров - 08.02.2013 11:27:35
 
формула написана как-то непонятно
в моем примере результат верный или нет?
 
Нет в вашем примере не верно.
Накидал логику
Проверка на наличие пустых ячеек =ЕСЛИ(ЕПУСТО(G2);0;ЕСЛИ(ЕПУСТО(I2);0)
Проверка на содержание (CFD, USD, JPY) в ячейке F2 незнаю как написать
Расчет если в F2 "CFD" C2="Sell";(G2-I2)*10;ЕСЛИ(C2="buy";(I2-G2)*10
Расчет если в F2 "JPY"  C2="Sell";(G2-I2)*100;ЕСЛИ(C2="buy";(I2-G2)*100
Расчет если в F2 "USD" C2="Sell";(G2-I2)*10000;ЕСЛИ(C2="buy";(I2-G2)*10000
В всех остальных случаях C2="Sell";(G2-I2)*10000;ЕСЛИ(C2="buy";(I2-G2)*10000
Изменено: Семён Елизаров - 08.02.2013 11:39:51
 
в последнем файле в формуле было умножение на 5

попробуйте объяснить логику расчёта без применения формул, словами ;)
Изменено: LVL - 08.02.2013 11:44:04
 
В 13 посте расписал
 
без формул...
 
Есть разные типы котировок
- прямая валютная котировка USD/JPY-, USD/CAD
- обратная валютная котировка GBP/USD, EURUSD
- кросс-курс EUR/GBP, EUR/JPY
Еще и золото обозвал CFD
http://prntscr.com/ryory
Естественно нужно считать после сделки Buy Sell цена открытия-цена закрытия, количество пунктов, но как это сделать?
Было замечено
Если котировка в конце содержит JPY то одни расчеты
Если котировка содержит в конце USD другие расчеты
Ну а если на примере золота CFD то тоже другие расчеты для получения правильного значения количества пунктов
Пример если сделка по золоту Buy- покупка цена закрытия минус цена открытия (1670,96-1670,39) по хорошему это 5,7 пунктов
Случай с ЕUR/USD покупка 1,32501 закрытие 1,32602 это 10,1 пп
Случай с EUR/JPY 123,818 закрытие 124,005 это 18,7 пп
Изменено: Семён Елизаров - 08.02.2013 12:31:11
 
т.е. в столбце M Pips необходимо посчитать количество пунктов?
Столбец Trade может принимать значения кроме Byu и Sell?
1 пункт для разных котировок сответственно имеет разные значения?
 
Совершенно верно, Trade  имеет только 2 значения Buy  и Sell. 1 пункт для разных котировок с ответственно имеет разные значения.
130,223
1,32405
66,20
Везде будут разные расчеты если просто вычитать и складывать
 
Если все так как Вы пишите тогда не понятно в чем ошибка в предложенном мной варианте, какими должны в действительности быть рассчитанные значения?
 
Можете пояснить эту формулу уже ради интереса
=ЕСЛИ(НЕ(И(ЕПУСТО(G2);ЕПУСТО(I2)));ЕСЛИ(C2="Sell";(G2-I2);ЕСЛИ(C2="buy";(I2-G2);0))*ВПР(F2;Ticker;2;ЛОЖЬ);0)
откуда это формула знает про CFD, USD и JPY удивительно считает вроде бы правильно, но только после того когда обновляю расчеты не сразу, и еще проблема при удалении или цены открытия или цены закрытия в ответе стоит число с минусом (для этого я делал чтобы проверяло на наличие пустых ячеек)
Изменено: Семён Елизаров - 08.02.2013 13:14:54
 
ошибка действительно была (при удалении или цены открытия или цены закрытия), исправил.
Посмотрите в диспетчере имен имя Ticker, диапазон можно поместить на лист, далее обычный ВПР ;)
 
LVL пришлите мне пожалуйста в личку ваш номер телефона, хочу отблагодарить если можно контакты (скайп или почту)
Изменено: Семён Елизаров - 08.02.2013 14:20:41
 
LVL при удалении цены закрытия или цены открытия в пунктах некорректное число
http://prntscr.com/rz4m9
 
Исправил, видимо когда выкладывал предыдущий раз прицепил не то файл. Расчёт происходит при условии, что ячейки в столбцах Open и Close содержат значения, если хотябы одна из них пуста - результат=0

P.s. Благодарность получена :)
Изменено: LVL - 11.02.2013 09:30:09
Страницы: 1
Читают тему
Наверх