Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5

Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36909
Benutzer: 6.077
Aktive Benutzer: 493
Links: 80
Wir begrüßen unseren neuesten Benutzer: Batangenyo
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 11 Stunden
- Batangenyo
vor einem Tag
- Spitzmaus
vor einem Tag
- juleslesqu...
vor 2 Tagen
- hmf44
vor 2 Tagen
- Crossa

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 41
Gesamt: 41
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Werbung

Like Tree2Likes
  • 2 Post By pako
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 31.05.13
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 168
josef123456 befindet sich auf einem aufstrebenden Ast
Standard 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);
}
}
}
}




--------------------------------------------------------------------
  #2 (permalink)  
Alt 11.06.13
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von josef123456 Beitrag anzeigen
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
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);
                }    
            }
        }
}
JoeDormann and josef123456 like this.
  #3 (permalink)  
Alt 11.06.13
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 168
josef123456 befindet sich auf einem aufstrebenden Ast
Standard

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
  #4 (permalink)  
Alt 03.03.15
waleed333
Gast
 
Beiträge: n/a
Standard

Das funktioniert auch soweit, nur das die Zahl ewig lang ist, deshalb will ich sie auf 3 Nachkommastellen kürzen.
Thema geschlossen

Lesezeichen

Stichworte
auto sl, auto tp, code ändern, mql5, programmierung, programmierung metatrader, stoploss, takeprofit, umprogrammieren, änderung


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------