|
Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
EA für MT5 zum autoerstellen von TP und SL
dieser code kann einen SL automatsisch erstellen. kann jemand den code so ergänzen, dass zusätzlich auch ein TP automatisch erstellt wird?
wäre echt spitze. danke ------------------------------------------------------------------------ input int SL = 100; //15 pip void OnTradeTransaction(const MqlTradeTransaction &txs, const MqlTradeRequest &req, const MqlTradeResult &res) { MqlTradeRequest rq = {0}; MqlTradeResult tr = {0}; double sl = 0; if (HistoryDealGetInteger(txs.deal, DEAL_ENTRY) == DEAL_ENTRY_IN) if (txs.volume != 0 && txs.type != TRADE_TRANSACTION_HISTORY_UPDATE) { PositionSelect(txs.symbol); if (PositionGetDouble(POSITION_SL) == 0) { rq.action = TRADE_ACTION_SLTP; rq.symbol = PositionGetString(POSITION_SYMBOL); if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) { sl = PositionGetDouble(POSITION_PRICE_OPEN) - SL * SymbolInfoDouble(txs.symbol, SYMBOL_POINT); rq.sl = NormalizeDouble(sl, SymbolInfoInteger(txs.symbol, SYMBOL_DIGITS)); rq.tp = 0; OrderSend(rq, tr); } else if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) { sl = PositionGetDouble(POSITION_PRICE_OPEN) + SL * SymbolInfoDouble(txs.symbol, SYMBOL_POINT); rq.sl = NormalizeDouble(sl, SymbolInfoInteger(txs.symbol, SYMBOL_DIGITS)); rq.tp = 0; OrderSend(rq, tr); } } } } -------------------------------------------------------------------- |
|
|||
Zitat:
Code:
input int SL = 100; //15 pip input int TP = 300; void OnTradeTransaction(const MqlTradeTransaction &txs, const MqlTradeRequest &req, const MqlTradeResult &res) { MqlTradeRequest rq = {0}; MqlTradeResult tr = {0}; double sl = 0; double tp = 0; if (HistoryDealGetInteger(txs.deal, DEAL_ENTRY) == DEAL_ENTRY_IN) if (txs.volume != 0 && txs.type != TRADE_TRANSACTION_HISTORY_UPDATE) { PositionSelect(txs.symbol); if (PositionGetDouble(POSITION_SL) == 0) { rq.action = TRADE_ACTION_SLTP; rq.symbol = PositionGetString(POSITION_SYMBOL); if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) { sl = PositionGetDouble(POSITION_PRICE_OPEN) - SL * SymbolInfoDouble(txs.symbol, SYMBOL_POINT); tp = PositionGetDouble(POSITION_PRICE_OPEN) + TP * SymbolInfoDouble(txs.symbol, SYMBOL_POINT); rq.sl = NormalizeDouble(sl, SymbolInfoInteger(txs.symbol, SYMBOL_DIGITS)); rq.tp = NormalizeDouble(tp, SymbolInfoInteger(txs.symbol, SYMBOL_DIGITS));; OrderSend(rq, tr); } else if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) { sl = PositionGetDouble(POSITION_PRICE_OPEN) + SL * SymbolInfoDouble(txs.symbol, SYMBOL_POINT); tp = PositionGetDouble(POSITION_PRICE_OPEN) - TP * SymbolInfoDouble(txs.symbol, SYMBOL_POINT); rq.sl = NormalizeDouble(sl, SymbolInfoInteger(txs.symbol, SYMBOL_DIGITS)); rq.tp = NormalizeDouble(tp, SymbolInfoInteger(txs.symbol, SYMBOL_DIGITS));; OrderSend(rq, tr); } } } } |
|
|||
hey Pako super. ich habe den EA kurz getestet und it works.
zuerst setzte er den TP nicht verlässlich, bis ich draufgekommen bin, woran das lag. wenn ich den EA mit dem ursprünglichen code, der nur einen SL setzt auf einem anderen Chart aktiviert habe, dann setzte der code den TP nicht immer. aber nachdem ich den EA aus dem anderen Chart entfernt habem, läuft er wie ein glöckerl. vielen danke. lg joe |
Lesezeichen |
Stichworte |
auto sl, auto tp, code ändern, mql5, programmierung, programmierung metatrader, stoploss, takeprofit, umprogrammieren, änderung |
|
|