Hallo,
ganz lieben Dank für die schnelle Antwort. Aber das geht irgendwie nicht.
1. Dein Code Er erkennt alle Objekte - ich wollte aber nur die Rectangles
2. Wenn ich andere Objekte lösche und nur Rectangles im Chart habe erkennt er nur den ersten Preis. Ein Rectangle ist aber ein Rechteck und durch einen oberen Preis und einen unteren Preis gekennzeichnet.
Code:
//------------------------------------------------------
//ERKENNT RACTANGLE PRICES +++++++++++++++++++++
//------------------------------------------------------
int objectsTotal=ObjectsTotal();
string objectName="";
double objectPrice1=0,objectPrice2=0;
double orderOpenPrice=0,slPrice=0;
for(int i=0;i<objectsTotal;i++)
{
objectName=ObjectName(i);
objectPrice1 = ObjectGetDouble(0,objectName,OBJPROP_PRICE1);
objectPrice2 = ObjectGetDouble(0,objectName,OBJPROP_PRICE1);
// send sell orders
if(objectPrice1<Bid && objectPrice2<Bid)
{
orderOpenPrice=NormalizeDouble(MathMin(objectPrice1,objectPrice2),Digits);
slPrice=NormalizeDouble(MathMax(objectPrice1,objectPrice2),Digits);
Comment(orderOpenPrice+" "+slPrice+" "+ObjectName(i));
// order handling ...
Print("orderOpenPrice sell-stop: ",orderOpenPrice," | Rectangle:",objectName);
Print("slPrice sell-stop: ",orderOpenPrice," | Rectangle:",objectName);
}
// send buy orders
if(objectPrice1>Ask && objectPrice2>Ask)
{
orderOpenPrice=NormalizeDouble(MathMax(objectPrice1,objectPrice2),Digits);
slPrice=NormalizeDouble(MathMin(objectPrice1,objectPrice2),Digits);
// order handling ...
Print("orderOpenPrice buy-stop: ",orderOpenPrice," | Rectangle:",objectName);
Print("slPrice buy-stop: ",orderOpenPrice," | Rectangle:",objectName);
}
}
//------------------------------------------------------
//ENDE
//------------------------------------------------------
if( Hour()>0)
{
int result=0;
result=OrderSend(Symbol(),OP_SELLLIMIT,Lots,orderOpenPrice,Slippage,0,0,"H_"+Kommentar1+MagicNumber+"_"+Zeiteinheit+"_"+Kommentar2,MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=slPrice;
TheTakeProfit=0;
if(StopLoss>0) TheStopLoss=slPrice;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),StrToTime(TimeToClose),Green);
}
if(TradingTime==false)
{OrderClose(OrderTicket(),0,0,0,Blue);
}
return(0);
}