예제 #1
0
def register(request):
    stock = Stock.objects.filter(symbol=request.POST['symbol'])
    if not stock:
        stock = Stock(symbol=request.POST['symbol'], name=request.POST['name'])
        stock.save()
        subprocess.Popen(
            ['java', '-jar', '/Users/shijieru/Desktop/updateDB.jar'])
    return HttpResponseRedirect(reverse('index'))
예제 #2
0
def create_stock_data():
    stock_list = business()
    for stock in stock_list:
        new_stock = Stock()
        new_stock.business = stock['business']
        new_stock.code = stock['code']
        new_stock.title = stock['title']
        new_stock.graph_url()
        new_stock.stock_reset()
        new_stock.save()
예제 #3
0
 def get(self, request):
     stocks = ts.get_stock_basics()
     for code in stocks.index:
         print not Stock.objects.filter(code=code).exists()
         print Stock.objects.filter(code=code).exists()
         if not Stock.objects.filter(code=code).exists():
             stock = Stock()
             stock.code = code
             stock.save()
     return HttpResponse(json.dumps({"status": "success"}),
                         content_type="application/json")
예제 #4
0
    def setUp(self):
        self.stock = Stock(stock_name='testStock', stock_price=2, stock_sold=0)
        self.stock.save()
        self.shareQuantity = 5

        self.user = User(username='******', password='******')
        self.user.save()
        self.user = User.objects.get(username='******')
        self.userund = UserFund(user=self.user, fund=1000)

        Trading_Account.objects.create(user_id=self.user,
                                       trading_name='testTrade')
        self.trading = Trading_Account.objects.get(user_id=self.user)
 def _create_stocks(self, cad, gbx, hkd, jpy, sek, start_date, usd):
     stocks = [
         Stock(symbol='MIK', name='The Michaels Company', currency=usd),
         Stock(symbol='DEDI.ST', name='Dedicare AB', currency=sek),
         Stock(symbol='CARD.L', name='Card Factory', currency=gbx),
         Stock(symbol='MOMO', name='Momo', currency=usd),
         Stock(symbol='1997.T', name='Akatsuki Eazima', currency=jpy),
         Stock(symbol='3932.T', name='Akatsuki', currency=jpy),
         Stock(symbol='1830.HK', name='Perfect Shape', currency=hkd),
         Stock(symbol='DR.TO',
               name='Medical Facilities Corporation',
               currency=cad),
         Stock(symbol='NHTC',
               name='Natural Health Trends Corp.',
               currency=usd),
         Stock(symbol='SCS.L', name='SCS Group', currency=gbx),
     ]
     Stock.objects.bulk_create(stocks)
     stock_symbols = [stock.symbol for stock in stocks]
     call_command('fetch_historical_stock_data', *stock_symbols,
                  '--force-update', '--start',
                  start_date.strftime('%Y-%m-%d'))
예제 #6
0
def get_stock(request):

    context = {}
    result = ts.get_stock_basics()
    print(result.shape)
    #result = result.head(2)
    stock_json = result.to_json(orient='records', force_ascii=False)

    stock_list = json.loads(stock_json)
    stock_object_list = []

    for i in stock_list:
        stock_object_list.append(Stock(i['name'], i['industry'], i['area'], i['pb'], i['pe']))

    context['all'] = stock_object_list

    return render(request, 'stock.html', context)
예제 #7
0
    def get_stock_model(row):
        stock = Stock()
        stock.symbol = row[0]
        stock.series = row[1]
        stock.open_stock = row[2]
        stock.high_value = row[3]
        stock.low_value = row[4]
        stock.close_value = row[5]
        stock.last_value = row[6]
        stock.prev_close_value = row[7]
        stock.ttr_dqty_value = row[8]
        stock.ttr_dval_value = row[9]
        stock.time_stamp = datetime.strptime(row[10], '%d-%b-%Y').date()
        stock.total_trades = row[11]
        stock.isin = row[12]

        return stock
예제 #8
0
def playground_view(request):
    stock_id = "2330"
    msg = ''
    # access stock from db
    stock = Stock().getNewestStock(stock_id)

    # get price change from stock
    try:
        # get full info of stock
        end_price = stock.end_price
        yesterday_end = stock.yesterday_end
        change = round(float(end_price) - float(yesterday_end), 2)
    except:
        msg += '錯誤:無法取得股票漲跌資訊\n'
        change = ''

    # get time
    try:
        # get current time in 'Asia/Taipei'
        current_time = datetime.now()
    except:
        msg += '錯誤:無法取得時間\n'
        current_time = ''

    return render(
        request, 'dailyGame/playground.html', {
            'notif_num':
            Notification.objects.filter(n_to=request.user,
                                        is_read=False).count(),
            'stock':
            stock,
            'change':
            change,
            'current_time':
            current_time,
            'msg':
            msg
        })
예제 #9
0
    def rebook_stock_to_destination(self):
        rebook_amount = self.form.cleaned_data.get("amount")

        self.destination_stock = Stock.objects.filter(
            lagerplatz=self.position, sku_instance=self.stock.sku_instance)

        if self.destination_stock.count() > 0:
            self.destination_stock = self.destination_stock.first()
        else:
            self.destination_stock = None

        if self.destination_stock is None:
            self.destination_stock = Stock(
                lagerplatz=self.position,
                sku_instance=self.stock.sku_instance,
                sku=self.stock.sku_instance.sku)

        if self.destination_stock is not None:
            if self.destination_stock.bestand is None:
                self.destination_stock.bestand = rebook_amount
            else:
                self.destination_stock.bestand += rebook_amount

        self.destination_stock.save()
        self.pre_rebook_stock_to_destination(
            self.destination_stock, self.destination_stock.sku_instance,
            self.destination_stock.lagerplatz)

        if rebook_amount > 0:
            if self.stock.bestand - rebook_amount >= 0:
                self.destination_stock.save()
                if self.stock.bestand - rebook_amount == 0:
                    self.stock.delete()
                else:
                    self.stock.bestand -= rebook_amount
                    self.stock.save()
예제 #10
0
    def bookin_product_on_position(self):
        query_condition = Q(
            Q(product=self.product,
              lagerplatz__iexact=self.position.name,
              zustand=self.state)
            | (Q(ean_vollstaendig=self.product.ean,
                 lagerplatz__iexact=self.position.name,
                 zustand=self.state)))
        self.stock = Stock.objects.filter(query_condition).first()
        print(f"bbaba: {self.position.name} - {self.stock}")
        if self.stock is None:
            self.stock = Stock(ean_vollstaendig=self.product.ean,
                               zustand=self.state,
                               lagerplatz=self.position.name,
                               product=self.product)
        print(f"GUTE FRAGE : {self.bookin_amount} - {self.stock.bestand}")

        print(f"bbaba2: {self.position.name} - {self.stock.lagerplatz}")

        if self.stock.bestand is not None:
            self.stock.bestand += self.bookin_amount
        else:
            self.stock.bestand = self.bookin_amount
        self.stock.save()
예제 #11
0
def stock_view(request):
	msg = ''
	if request.method == 'GET' and 'stock_id' in request.GET:
		stock_id = request.GET['stock_id']
	else:
		stock_id = None

	# access stock from db
	stock = Stock().getNewestStock(stock_id)

	# get price change from stock
	try:
		# get full info of stock
		end_price = stock.end_price
		yesterday_end = stock.yesterday_end
		change = round(float(end_price) - float(yesterday_end), 2)
	except:
		msg += '錯誤:無法取得股票漲跌資訊\n'
		change = ''

	# get time
	try:
		# get current time in 'Asia/Taipei'
		current_time = datetime.now()
	except:
		msg += '錯誤:無法取得時間\n'
		current_time = ''

	return render(request, 'trade/stock.html', {
		'notif_num': Notification.objects.filter(n_to = request.user, is_read = False).count(),
		'stock_id': stock_id,
		'stock': stock,
		'change': change,
		'current_time': current_time,
		'msg': msg
	})
예제 #12
0
 def create(self, validated_data):
     stocks = [Stock(**item) for item in validated_data]
     return Stock.objects.bulk_create(stocks)
예제 #13
0
stock_code = pd.read_html(
    'http://kind.krx.co.kr/corpgeneral/corpList.do?method=download',
    header=0)[0]
stock_code.sort_values(['상장일'], ascending=True)
stock_code = stock_code[['회사명', '종목코드']]
stock_code = stock_code.rename(columns={'회사명': 'company', '종목코드': 'code'})
stock_code.code = stock_code.code.map('{:06d}'.format)

# company = input()
company = sys.argv[1]

code = stock_code[stock_code.company == company].code.values[0].strip()

url = 'http://finance.naver.com/item/sise.nhn?code={code}'.format(code=code)
print(url)

req_header = {
    'user-agent':
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
}
res = requests.get(url, headers=req_header)
print(res.status_code)

soup = BeautifulSoup(res.text, 'html.parser')

price = soup.select_one('div > p.no_today span.blind').get_text()
url = url

Stock(name=company, code=code, price=price, url=url).save()