Я использую API xApi XTB. Мне нужна помощь в использовании «offset» и «sl» при совершении сделки.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Я использую API xApi XTB. Мне нужна помощь в использовании «offset» и «sl» при совершении сделки.

Сообщение Anonymous »


`Привет, я пытаюсь автоматизировать сделки с помощью xAPI. Сделки на продажу работают нормально, используя:


Это необходимо для открытия сделки на продажу, т.е. cmd = 1 type = 0.
offset = 50 sl = 50 Я получаю открытую сделку с трейлинг-стопом в 5 пунктов. Это то, что я ожидал.


При попытке совершить сделку на покупку используется cmd = 0, введите = 0, используя:
offset = -50 sl = -50 сделка на покупку открывается без стопа или скользящего стопа.
offset = 50 sl = 50 ОШИБКА неверное значение sl/tp.
offset = 1 sl = -50 ОШИБКА неверный скользящий стоп.
offset = 0 sl = -50 сделка на покупку открывается без стопа или скользящего стопа.
offset = -1 sl = -50 сделка на покупку открывается без стопа или скользящего стопа.offset = -10 sl = -50 сделка на покупку открывается без стопа или трейлинг-стопа.


Из этих Мне кажется, что для сделки на покупку SL должен быть отрицательным, т.е. стоп-лосс должен быть ниже цены сделки.

Я вполне уверен, что проблема в смещении, но не могу разобраться в этом.< /p>


Я ожидал, что первая попытка результата сработает.`

Код: Выделить всё

  def open_account():
'''
opens an instanece to the API
'''
#   print('open api')
global open_ctr
#open_ctr += 1
host = 'xapia.x-station.eu'
##this is the address for the demo account##'xapia.x-    station.eu' real account is         'xapi.xtb.com
port = 5124         ##demo acc 5124  real 5112
USERID =  #   Account number
PASSWORD = # my password

host = socket.getaddrinfo(host, port)[0][4][0]
global S
global END

context=ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.verify_mode = ssl.CERT_REQUIRED
context.check_hostname = False
context.load_default_certs()

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

S = context.wrap_socket(s, server_hostname=host)
S.connect(('xapia.x-station.eu',5124))
S.settimeout(5)

parameters = {
"command" : "login",
"arguments" : {
"userId": USERID,
"password": PASSWORD
}
}
packet = json.dumps(parameters, indent=4)
S.send(packet.encode("UTF-8"))

END = b'\n\n'
response=b''
while True:
try:
response += S.recv(8192)
except:
print('67 login fail')
open_account
if END in response:
pass
open_ctr+=1

break

def Close_account():
'''
Closes the open Instance
'''
#   print('98               close api')
global open_ctr
#   open_ctr -= 1
parameters = {
"command"  : "logout"
}
packet = json.dumps(parameters, indent=4)
try:
S.send(packet.encode("UTF-8"))

response = S.recv(8192)
open_ctr-=1
except:
#print('Close account Failed ')
Close_account()

def open_a_trade(symbol, price , volume , cmd, sl, offset,  tp=0):
'''
opens the trade
'''

end_date=get_server_time()
order_result.iloc[0:0]
order_result.loc[1,'datetime']=end_date
order_result['symbol']=symbol
order_result['cmd']=cmd
order_result['offset']=offset
order_result['sl']=sl
order_result['tp']=tp
order_result['volume']=volume
order_result['price']=price

open_account()

parameters={
"command": "tradeTransaction",
"arguments": {
"tradeTransInfo": {
"cmd": cmd,
"customComment": '',
"expiration": 0,
"offset": offset,
"order": 0,
"price": price,
"sl": sl,
"symbol": symbol,
"type": 0,
"volume": volume
}
}
}
packet = json.dumps(parameters, indent=4)
S.send(packet.encode("UTF-8"))
response_open_trade = S.recv(328192)
## open trade was timing out , changed open response time in open_account to 5s from 3.5s

order_number_response=json.loads(response_open_trade)

if order_number_response['status']==False:
order_result['order_number_response']=order_number_response['status']
print('427 order result')
print(order_result)
order_result.to_csv('order_result.csv', mode='a', index=False, header=False)

else:
order_result['order_number_response']=order_number_response['returnData']['order']

print('427 order result')
print(order_result)
order_result.to_csv('order_result.csv', mode='a', index=False, header=False)
#       print('427 open worked')
Close_account()

# set values for the trade

symbol='GBPUSD'
price=.61801
volume=.2
cmd=0
offset=0
sl=-50
tp=0
print('943 ' , sl)
open_a_trade(symbol, price , volume , cmd, sl, offset, tp)
Кто-нибудь знает какие-либо доступные ресурсы, которые объясняют xapi более подробно, чем игровая площадка xApi?
Я пробовал поддержку клиентов xtb, но они этого не делают. оказывать любую поддержку API.


Подробнее здесь: https://stackoverflow.com/questions/785 ... ng-a-trade
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»