Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 11.06.13
pako pako ist offline
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);
                }    
            }
        }
}