from Dhan_Tradehull import Tradehull
client_code = "110"
token_id = "eCbXElV9AIPuQ"
# Initialize Tradehull object (tradehull support library)
tsl = Tradehull(client_code, token_id)
# Place an order using the wrapper function, without needing security ID manually
orderid3 = tsl.order_placement(
'MONOT', # Trading symbol
'BSE', # Exchange
10, # Quantity
0, # Price
0, # Trigger price
'MARKET', # Order type
'BUY', # Transaction type
'CNC' # Trade type / product
)
Im obigen Code verwende ich die in dhan_tradehull definierte Handelshülle Die Konstruktorin von TradeHull hat ein Dhan -Objekt des Dhanhq in DhanHQ.Py . Order_placement Funktion ist so definiert:
def place_order(
self,
security_id,
exchange_segment,
transaction_type,
quantity,
order_type,
product_type,
price,
trigger_price=0,
disclosed_quantity=0,
after_market_order=True,
validity='DAY',
amo_time='OPEN',
bo_profit_value=None,
bo_stop_loss_Value=None,
tag=None
):
try:
url = self.base_url + '/orders'
payload = {
"dhanClientId": self.client_id,
"transactionType": transaction_type.upper(),
"exchangeSegment": exchange_segment.upper(),
"productType": product_type.upper(),
"orderType": order_type.upper(),
"validity": validity.upper(),
"securityId": security_id,
"quantity": int(quantity),
"disclosedQuantity": int(disclosed_quantity),
"price": float(price),
"afterMarketOrder": after_market_order,
"boProfitValue": bo_profit_value,
"boStopLossValue": bo_stop_loss_Value
}
if tag is not None and tag != '':
payload["correlationId"] = tag
if after_market_order:
if amo_time in ['PRE_OPEN', 'OPEN', 'OPEN_30', 'OPEN_60']:
payload['amoTime'] = amo_time
else:
raise Exception("amo_time must be one of ['PRE_OPEN','OPEN','OPEN_30','OPEN_60']")
if trigger_price > 0:
payload["triggerPrice"] = float(trigger_price)
else:
payload["triggerPrice"] = 0.0
payload = json_dumps(payload)
response = self.session.post(url, data=payload, headers=self.header, timeout=self.timeout)
return self._parse_response(response)
except Exception as e:
logging.error('Exception in dhanhq>>place_order: %s', e)
return {
'status': 'failure',
'remarks': str(e),
'data': '',
}
Meine Frage:
Ich möchte zu diesen Wörterbüchern in Order_placement fragen:
product = {
'MIS': self.Dhan.INTRA,
'MARGIN': self.Dhan.MARGIN,
'MTF': self.Dhan.MTF,
'CO': self.Dhan.CO,
'BO': self.Dhan.BO,
'CNC': self.Dhan.CNC
}
< /code>
Ich möchte wissen, warum diese Wörterbücher definiert sind. Soweit ich diese Wörterbücher sehe, konvertieren sie nur Benutzereingaben in einige interne Namen. Verstehe die Gründe für die Definition dieser Wörterbücher. Denn meiner Meinung nach scheinen sie nur für die Konvertierung von Benutzereingaben in interne Darstellungen gedacht zu sein.
# Place an order using the wrapper function, without needing security ID manually orderid3 = tsl.order_placement( 'MONOT', # Trading symbol 'BSE', # Exchange 10, # Quantity 0, # Price 0, # Trigger price 'MARKET', # Order type 'BUY', # Transaction type 'CNC' # Trade type / product ) [/code] Im obigen Code verwende ich die in dhan_tradehull definierte Handelshülle Die Konstruktorin von TradeHull hat ein Dhan -Objekt des Dhanhq in DhanHQ.Py . Order_placement Funktion ist so definiert: [code]def order_placement( self, tradingsymbol: str, exchange: str, quantity: int, price: int, trigger_price: int, order_type: str, transaction_type: str, trade_type: str ) -> str:
except Exception as e: self.logger.exception(f'Got exception in place_order: {e}') traceback.print_exc() return None [/code] und in Dhanhq.py hat die Dhanhq -Klasses eine Funktion von Place_order , die intern aufgerufen wird. [code]def place_order( self, security_id, exchange_segment, transaction_type, quantity, order_type, product_type, price, trigger_price=0, disclosed_quantity=0, after_market_order=True, validity='DAY', amo_time='OPEN', bo_profit_value=None, bo_stop_loss_Value=None, tag=None ): try: url = self.base_url + '/orders' payload = { "dhanClientId": self.client_id, "transactionType": transaction_type.upper(), "exchangeSegment": exchange_segment.upper(), "productType": product_type.upper(), "orderType": order_type.upper(), "validity": validity.upper(), "securityId": security_id, "quantity": int(quantity), "disclosedQuantity": int(disclosed_quantity), "price": float(price), "afterMarketOrder": after_market_order, "boProfitValue": bo_profit_value, "boStopLossValue": bo_stop_loss_Value }
if tag is not None and tag != '': payload["correlationId"] = tag
if after_market_order: if amo_time in ['PRE_OPEN', 'OPEN', 'OPEN_30', 'OPEN_60']: payload['amoTime'] = amo_time else: raise Exception("amo_time must be one of ['PRE_OPEN','OPEN','OPEN_30','OPEN_60']")
except Exception as e: logging.error('Exception in dhanhq>>place_order: %s', e) return { 'status': 'failure', 'remarks': str(e), 'data': '', } [/code] Meine Frage: Ich möchte zu diesen Wörterbüchern in Order_placement fragen: product = { 'MIS': self.Dhan.INTRA, 'MARGIN': self.Dhan.MARGIN, 'MTF': self.Dhan.MTF, 'CO': self.Dhan.CO, 'BO': self.Dhan.BO, 'CNC': self.Dhan.CNC } < /code> Ich möchte wissen, warum diese Wörterbücher definiert sind. Soweit ich diese Wörterbücher sehe, [url=viewtopic.php?t=12659]konvertieren[/url] sie nur Benutzereingaben in einige interne Namen. Verstehe die Gründe für die Definition dieser Wörterbücher. Denn meiner Meinung nach scheinen sie nur für die Konvertierung von Benutzereingaben in interne Darstellungen gedacht zu sein.
Ich entwickle einen in Echtzeit simulierten Handelsbot in Python, der einen RandomforestClassifier verwendet, um Kauf-/Verkaufssignale für NASDAQ-100-Aktien vorherzusagen. Der Bot verwendet...
Wenn Sie den Zähls -Sort -Algorithmus verwenden, erstellen Sie eine Liste und verwenden ihre Indizes als Schlüssel, während die Anzahl der Ganzzahl -Vorkommen als Werte in der Liste hinzugefügt wird....
Ich habe gerade eine Handelsstrategie herausgearbeitet und bin jetzt mit der Codierung eines Bots, um die Trades einfacher auszuführen. (Ja, ich kodiere mit Chatgpt, weil ich kein Vollzeitcodierer...
Vor Kurzem schaue ich mir die Implementierung des Limit Order Book von jemandem an. An einer Stelle hat der Autor einen Kommentar hinterlassen, und ich verstehe nicht ganz, wie sich das auf die...