Beispiel #1
0
        public void ExchangeBuy(Stock coin, int i, Virtual_Investor vit) //구매시장
        {
            int amount;

            switch (vit.Charactor)                                                                          // 성격에 따른 코인 구매량
            {
            case "Fightting": { amount = (vit.Funds / coin.StockCurrentPrice / random.Next(1, 3)); break; } // 지갑에 있는돈 올인

            case "MiddleFightting": { amount = (vit.Funds / coin.StockCurrentPrice / random.Next(1, 4)); break; }

            case "Normal": { amount = (vit.Funds / coin.StockCurrentPrice / random.Next(1, 5)); break; }

            case "MiddleUnder": { amount = (vit.Funds / coin.StockCurrentPrice / random.Next(1, 6)); break; }

            case "Under": { amount = (vit.Funds / coin.StockCurrentPrice / random.Next(1, 7)); break; }

            default:
                amount = 0; break;
            }

            if (coin.Quantity > 0)
            {
                int buyCoinPrice;
                buyCoinPrice = coin.StockCurrentPrice * amount;                       //코인가격 * 수량

                vit.BuyPrice[i] = (coin.StockCurrentPrice + vit.BuyPrice[i]) / vit.n; // 코인종류에따른 구매가격 저장
                vit.n++;
                vit.Benefit_pro(vit.BuyPrice[i], coin.StockCurrentPrice, i);
                vit.Benefit    = (coin.StockCurrentPrice / vit.BuyPrice[i] * 100) - 100; // (코인현재가격/구매가격*100)-100
                vit.Wallet[i] += amount;
                coin.BuyStock(amount);
            }
        }
Beispiel #2
0
        public void ExchangeSell(Stock coin, int i, Virtual_Investor vit) //판매루프
        {
            int amount;

            switch (vit.Charactor)
            {
            case "Fightting": { amount = (vit.Wallet[i] / random.Next(1, 3)); break; }

            case "MiddleFightting": { amount = (vit.Wallet[i] / random.Next(1, 4)); break; }

            case "Normal": { amount = (vit.Wallet[i] / random.Next(1, 5)); break; }

            case "MiddleUnder": { amount = (vit.Wallet[i] / random.Next(1, 6)); break; }

            case "Under": { amount = (vit.Wallet[i] / random.Next(1, 7)); break; }

            default:
                amount = 0; break;
            }
            if (amount > 0) // 판매하는 코인의 개수가 0개이상일때
            {
                int sellCoinPrice;
                sellCoinPrice = coin.StockCurrentPrice * amount;

                vit.BuyPrice[i] = 0; //코인구매가격 초기화
                vit.n           = 1; //n값 초기화

                vit.Funds     += sellCoinPrice;
                vit.Wallet[i] -= amount; //지갑에 들어있는 코인개수 감소
                coin.SellStock(amount);
                if (vit.Wallet[i] == 0)
                {
                    vit.Benefit_pro(1, 0, i); //이익률계산 초기화
                }
            }
        }