Блог им. bosco

Пост про несимметричность убытков и профита

    • 13 апреля 2019, 12:26
    • |
    • П М
  • Еще
Тут на прошлой неделе какой-то пост проезжал про результаты инвестирования и монетку.
Что мол допустим у вас в случае успеха результат +30%, а в случае неудачи -10% за год

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

А сейчас найти не могу. 
Взяло меня за живое, т.к. мне казалось что по математике это невозможно. Степени — аддитивны,
(a^b)^c = a^(b+с) 
а от перестановки слагаемых, как известно с первых классов школы, ничего не меняется.

Но я человек неленивый, к тому же люблю поиграть лямбдами, написал программку

public class TestAssimetry {
	double amount = 100000d;
	void profit() {
		amount *= 1.3;
	}
	void loss() {
		amount *= 0.9;
	}
	void forLoop(int num, Runnable f) {
		for(int i=0;i<num;i++)
			f.run();
	}
	public static void main(String s[]) {
		TestAssimetry t = new TestAssimetry();
		t.forLoop(10, t::profit);
		t.forLoop(10, t::loss);
		System.out.println(t.amount);
		
		TestAssimetry l = new TestAssimetry();
		t.forLoop(10, l::loss);
		t.forLoop(10, l::profit);
		System.out.println(l.amount);
	}
}
Результат неудивительный 480682.838924479 480682.83892447915 (небольшая ошибка компьютерного округления не в счёт) собственно вопрос — где был этот пост и что зто вообще было? был ли в нём смысл, может я всё неправильно запомнл?
    ★6
    11 комментариев
    Не забывайте прибавление каждый год делать. А не тупо от начальной суммы считать убытки/прибыли.
    avatar
    Гражданин РФ, ага, сделал
    avatar
    iamblackornot, не сложно
    спасибо за ссылку

    public class TestAssimetry {
    	double amount = 0d;
    	void profit() {
    		amount *= 1.3;
    	}
    	void loss() {
    		amount *= 0.9;
    	}
    	void invest() {
    		amount += 1000d;
    	}
    	void forLoop(int num, Runnable...ra) {
    		for(int i=0;i<num;i++) {
    			for (Runnable r : ra)
    				r.run();
    		}
    	}
    	public static void main(String s[]) {
    		TestAssimetry t = new TestAssimetry();
    		t.forLoop(20, t::invest, t::profit);
    		t.forLoop(20, t::invest, t::loss);
    		System.out.printf("%,.2f\n", t.amount);
    		
    		TestAssimetry l = new TestAssimetry();
    		t.forLoop(20, l::invest, l::loss);
    		t.forLoop(20, l::invest, l::profit);
    		System.out.printf("%,.2f\n", l.amount);
    	}
    }
    
    здесь сначала инвестируем +1000 потом считаем проценты,  каждый год.
    результат понятное дело будет разный, т.к. степени можно складывать только с одинаковым основанием...
    107 503,24
    2 321 711,44
    

    это кажется — тема...
    но не очень понятно — какая :)
    что-то насчёт того чтобы играть со вводами выводами.
    avatar
    iamblackornot, кажется элементарно — база убытков сильно маленькая вначале, а профитов — большая в конце

    это получается что начинать инвестировать если у вас маленькие суммы — лучше на пике рынке. а если большие — то на дне.
    ну вобщем ничего нового кажется нет.
    avatar
    ПBМ,  фиксированная величина движения в деньгах в зависимости от стоимости актива будет сильно меняться в процентах. Пики и впадины тут не причем.
    avatar
    iamblackornot, в приведенном примере своя математика. Если 2+2 != 4, то это и есть причина. По которой у некоторых свое виденье дохода на рынке. Это уже диагноз.
    avatar
    нубский вопрос. А зачем делать ссылку на метод, когда метод принадлежит экземпляру?
    Невербальный паровоз, мне хотелось с этой лямбдой разобраться.
    удобно на самом деле, больше всего удивило что компилятору пофик на имя метода, главное аргументы б совпадали. это классно.
    в комменте к посту передаются уже два метода. и в принципе любое количество можно передать.
    avatar
    ПBМ, а интерфейс нужен?
    Невербальный паровоз, нужен
    avatar
    В алгоритме надо ещё НДФЛ учесть.
    avatar

    теги блога П М

    ....все тэги



    UPDONW
    Новый дизайн