Closed riho2020 closed 3 months ago
非同期処理から以下のような処理を投げているのですが、エントリーの注文だけが通って、クローズの注文でエラーが帰ってきます。原因を調べたのですが、不明なので教えていただきたいです。
def OrderEntry(symbol,BS,mt):#エントリー発注情報作成関数 global TradePassward Order={"Password": TradePassward, "Symbol": str(symbol),#対象の銘柄 "Exchange": 1,#市場の指定 "SecurityType": 1, "Side": BS,#1:売り、2:買い "CashMargin": 2,#現物:1、新規信用:2、決済:3 "MarginTradeType": 3,#信用取引区分 1:制度信用、2:一般信用(長期)、3:一般信用(デイトレ) "DelivType": 0,#受渡区分 信用の場合:新規建て時>0、決済時>2(現物の場合:買い時>2、売り時>0) "AccountType": 4,#口座種別 2:一般口座、4:特定口座 "Qty": int(mt),#注文数量@100株単位になるように注意 "FrontOrderType": 10,#執行条件 寄り成り前:13、寄り成後:14、引け成前場:15、引け成後場:16 "Price":0, "ExpireDay": 0#執行期限 } return Order
def OrderClose(symbol,BS,mt):#手仕舞い発注情報作成関数 global TradePassward Order={"Password": TradePassward, "Symbol": str(symbol),#対象の銘柄 "Exchange": 1,#市場の指定 "SecurityType": 1, "Side": BS,#1:売り、2:買い "CashMargin": 3,#決済:3 "MarginTradeType": 3,#信用取引区分 1:制度信用、2:一般信用(長期)、3:一般信用(デイトレ) "DelivType": 2,#受渡区分 信用の場合:新規建て時>0、決済時>2(現物の場合:買い時>2、売り時>0) "AccountType": 4,#口座種別 2:一般口座、4:特定口座 "Qty": int(mt),#注文数量 "ClosePositionOrder":0, "FrontOrderType": 10,#執行条件 10:成行 "Price":0, "ExpireDay": 0#執行期限 } return Order
~省略~
async def order_by_dataframe(order_queue): global Token_API global OrderURL global Test_mode
while True: print("注文タスク") global TimeOutFlg if TimeOutFlg!=0: break queue_read=await order_queue.get() print(queue_read)#送られてきているデータのチェック symbol=queue_read["symbol"] Mount=queue_read["mount"] if queue_read["side"]<0: posi=1 else : posi=2 if queue_read["position"]=="Entry": Order=OrderEntry(symbol,posi,Mount) elif queue_read["position"]=="Close": Order=OrderClose(symbol,posi,Mount) if Test_mode==True:#テストモードの実装 print("Now Testing......") print(Order) else: response=rq.post(OrderURL,json=Order,headers=Token_API) if response.status_code == 200: json_data=response.json() print(f'{symbol}発注') print(json_data) else: print('Order_Error:', response.status_code) print(Order)
クローズの注文ではどのようなエラーが返却されておりますでしょうか?
過去に類似の質問があり、自己解決できました。Sideの指定の問題だったようです。返信ありがとうございました。
ご確認ありがとうございます。 解決済みとのことですので、クローズとさせていただきます。
非同期処理から以下のような処理を投げているのですが、エントリーの注文だけが通って、クローズの注文でエラーが帰ってきます。原因を調べたのですが、不明なので教えていただきたいです。
def OrderEntry(symbol,BS,mt):#エントリー発注情報作成関数 global TradePassward Order={"Password": TradePassward, "Symbol": str(symbol),#対象の銘柄 "Exchange": 1,#市場の指定 "SecurityType": 1, "Side": BS,#1:売り、2:買い "CashMargin": 2,#現物:1、新規信用:2、決済:3 "MarginTradeType": 3,#信用取引区分 1:制度信用、2:一般信用(長期)、3:一般信用(デイトレ) "DelivType": 0,#受渡区分 信用の場合:新規建て時>0、決済時>2(現物の場合:買い時>2、売り時>0) "AccountType": 4,#口座種別 2:一般口座、4:特定口座 "Qty": int(mt),#注文数量@100株単位になるように注意 "FrontOrderType": 10,#執行条件 寄り成り前:13、寄り成後:14、引け成前場:15、引け成後場:16 "Price":0, "ExpireDay": 0#執行期限 } return Order
def OrderClose(symbol,BS,mt):#手仕舞い発注情報作成関数 global TradePassward Order={"Password": TradePassward, "Symbol": str(symbol),#対象の銘柄 "Exchange": 1,#市場の指定 "SecurityType": 1, "Side": BS,#1:売り、2:買い "CashMargin": 3,#決済:3 "MarginTradeType": 3,#信用取引区分 1:制度信用、2:一般信用(長期)、3:一般信用(デイトレ) "DelivType": 2,#受渡区分 信用の場合:新規建て時>0、決済時>2(現物の場合:買い時>2、売り時>0) "AccountType": 4,#口座種別 2:一般口座、4:特定口座 "Qty": int(mt),#注文数量 "ClosePositionOrder":0, "FrontOrderType": 10,#執行条件 10:成行 "Price":0, "ExpireDay": 0#執行期限 } return Order
~省略~
async def order_by_dataframe(order_queue): global Token_API global OrderURL global Test_mode
global TimeOutFlg