Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 29.06.14
2701ag 2701ag ist offline
Neues Mitglied
 
Registriert seit: Jun 2014
Beiträge: 3
2701ag befindet sich auf einem aufstrebenden Ast
Standard Hilfe: EA öffnet nur einen Trade bei vorliegendem Signal, nicht bis Signalwechsel

Hallo zusammen,

zunächst dickes Lob, ist ein klasse Forum hier!
Bin noch relativ neu in der MQL Welt konnte er schon das ein oder andere lernen

Bei mei akuellen EA, den ich am testen bin, läuft soweit alles, bis auf eine Kleinikeit:

Wenn ein Sgnal vorliegt, wird nur einmal getradet dann erst wieder bei Signalwechsel usw. Es sollten jedoch mehre Trades bis zum Signalwechsel durchgeführt werden, z.B. Take Profit 10 Punkte und dann nächster Trade so lange bis der Markt dreht...

Was mache ich falsch??

Hier meine Einstiegslogik:

// Execute on bar open
if(CheckOncePerBar == true)
{
int BarShift = 1;
if(CurrentTimeStamp != Time[0])
{
CurrentTimeStamp = Time[0];
bool NewBar = true;
}
else NewBar = false;
}
else
{
NewBar = true;
BarShift = 0;
}


if (NewBar == true) {

// Buy order
if(golong == true && BuyTicket == 0 )
{
OrderSelect(SellTicket,SELECT_BY_TICKET);

// Close order
if(OrderCloseTime() == 0 && SellTicket > 0)
{
double CloseLots = OrderLots();
double ClosePrice = Ask;

bool Closed = OrderClose(SellTicket,CloseLots,ClosePrice,UseSlip page,Red);
}

double OpenPrice = Ask;

// Calculate stop loss and take profit
if(StopLoss > 0) double BuyStopLoss = OpenPrice - (StopLoss);
if(TakeProfit > 0) double BuyTakeProfit = OpenPrice + (TakeProfit);

// Open buy order
BuyTicket = OrderSend(Symbol(),OP_BUY,LotSize,OpenPrice,UseSli ppage,BuyStopLoss,BuyTakeProfit,"Buy Order",MagicNumber,0,Green);

SellTicket = 0;
}


// Sell Order
if( goshort == true && SellTicket == 0)
{
OrderSelect(BuyTicket,SELECT_BY_TICKET);

if(OrderCloseTime() == 0 && BuyTicket > 0)
{
CloseLots = OrderLots();
ClosePrice = Bid;

Closed = OrderClose(BuyTicket,CloseLots,ClosePrice,UseSlipp age,Red);
}

OpenPrice = Bid;

if(StopLoss > 0) double SellStopLoss = OpenPrice + (StopLoss);
if(TakeProfit > 0) double SellTakeProfit = OpenPrice - (TakeProfit);

SellTicket = OrderSend(Symbol(),OP_SELL,LotSize,OpenPrice,UseSl ippage,SellStopLoss,SellTakeProfit,"Sell Order",MagicNumber,0,Red);

BuyTicket = 0;
}

return(0);
}
return (0);}