Je souhaiterais me programmer une petite application qui me permettrais de faire mon trading management (afin de pouvoir ajouter plus de paramètes d'entrées et sorties que dispo actuellement dans nos chères plateformes).
Pour ceci, j'ai commencé à reflechir a une application python connecté à MT5. J'arrive a faire un peu tout ce que je veux, sauf passer le trade (ce qui est un peu ballot n'est ce pas ^^).
je suis sur le moment sur un compte démo, et pas grand chose ne fonctionne
![Triste :(](./images/smilies/icon_e_sad.gif)
A chaque fois, j'ai ceci :
Order failed, retcode=10030
order_send failed, retcode=10030
result OrderSendResult(retcode=10030, deal=0, order=0, volume=0.0, price=0.0, Bid=0.0, ask=0.0, comment='Unsupported filling mode', request_id=0, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='EURUSD', volume=0.01, price=1.1252900000000001, stoplimit=0.0, sl=1.1251900000000001, tp=1.1253900000000001, deviation=20, type=0, type_filling=2, type_time=0, expiration=0, comment='python script open', position=0, position_by=0))
mon code de test (juste pour passer un trade pour le moment), est le suivant :
Code : #
import MetaTrader5 as mt5
# initialise la connection
if not mt5.initialize():
print("initialize() failed, error code =",mt5.last_error())
quit()
# parametres du trade
lot = 0.01
point = mt5.symbol_info(symbol).point
price = mt5.symbol_info_tick(symbol).ask
deviation = 20
sl = price - 10 * point
tp = price + 10 * point
# crée la requête
request = {
"action": mt5.TRADE_ACTION_DEAL,
"symbol": symbol,
"volume": lot,
"type": mt5.ORDER_TYPE_BUY,
"price": price,
"sl": sl,
"tp": tp,
"deviation": deviation,
"magic": 234000,
"comment": "python script open",
"type_time": mt5.ORDER_TIME_GTC,
"type_filling": mt5.ORDER_FILLING_RETURN,
}
# passe la requête
result=mt5.order_send(request)
# vérifie si la requête a réussi
if result.retcode != mt5.TRADE_RETCODE_DONE:
print("Order failed, retcode={}".format(result.retcode))
# request failed, print the result
print(" order_send failed, retcode={}".format(result.retcode))
print(" result",result)
else:
print("Order passed, ", result)
# termine la connection
mt5.shutdown()
Je ne comprend pas tellement
Pourtant, quand je regarde, le seul filling mode autorisé est ORDER_FILLING_RETURN (celui que j'utilise)
avez vous une idée ?
c'est un peu ballot si juste ce teste ne passe pas, bah je ne peux pas aller beaucoup plus loin ^^
merci de votre aide
![Sourire :)](./images/smilies/icon_e_smile.gif)