如何在pythonoandapi中向字符串添加整数

2024-06-06 20:05:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Oanda的restapi添加止损单和购买单。现在我可以很容易地指定止损的价格,但是,我想根据当前的价格计算止损。例如“当前价格”+.1。我对Python不太熟悉,所以问题很简单,但这让我发疯了。任何帮助都将不胜感激!在

我得到了这个错误代码(当我试图解决这个问题时还有很多其他错误代码)

trading.py", line 41, in <module>
    stopLoss = float("bid") -- float(.01)
ValueError: could not convert string to float: bid

提前谢谢,代码如下

在交易.py在

^{pr2}$

在执行.py在

import httplib
import urllib


class Execution(object):
    def __init__(self, domain, access_token, account_id):
        self.domain = domain
        self.access_token = access_token
        self.account_id = account_id
        self.conn = self.obtain_connection()

    def obtain_connection(self):
        return httplib.HTTPSConnection(self.domain)

    def execute_order(self, event):
        headers = {
            "Content-Type": "application/x-www-form-urlencoded",
            "Authorization": "Bearer " + self.access_token
        }
        params = urllib.urlencode({
            "instrument" : event.instrument,
            "units" : event.units,
            "type" : event.order_type,
            "side" : event.side,
            "stopLoss" : event.stopLoss

        })
        self.conn.request(
            "POST",
            "/v1/accounts/%s/orders" % str(self.account_id),
            params, headers
        )
        response = self.conn.getresponse().read()
        print response

在事件.py在

class Event(object):
    pass


class TickEvent(Event):
    def __init__(self, instrument, time, bid, ask):
        self.type = 'TICK'
        self.instrument = instrument
        self.time = time
        self.bid = bid
        self.ask = ask


class OrderEvent(Event):
    def __init__(self, instrument, units, order_type, side, stopLoss):
        self.type = 'ORDER'
        self.instrument = instrument
        self.units = units
        self.order_type = order_type
        self.side = side
        self.stopLoss = stopLoss

在战略.py在

import random

from event import OrderEvent


class TestRandomStrategy(object):
    def __init__(self, instrument, units, events, stopLoss):
        self.instrument = instrument
        self.units = units
        self.events = events
        self.ticks = 0
        self.stopLoss = stopLoss

    def calculate_signals(self, event):
        if event.type == 'TICK':
            self.ticks += 1
            if self.ticks % 1 == 0:
                side = random.choice(["buy"])
                order = OrderEvent(
                    self.instrument, self.units, "market", side, self.stopLoss
                )
                self.events.put(order)

再次感谢。。在


Tags: pyimportselfeventinitdomaindeftype