return(0); } double LotsOptimized() { double lot=LotSize; if (Risk_Enable_1_ON_0_OFF==1) {double risk=NormalizeDouble(Risk_Percent/100.0,2); //---- select lot size lot=NormalizeDouble(AccountFreeMargin()*risk/1250.0,2); //---- return lot size if(lot<0.01) lot=LotSize; if(lot>50.00) lot=50.00;}
return(lot); }
Ich weiß ist nicht die beste Programmierung aber funzt soweit. Also es wird ja alles so gemacht wie es soll aber ich möchte das er nicht jedes BUYLIMIT Kauft, kann man eine begrenzung machen das zum beispiel nur max 70% des Kontostandes in Trades umgesetzt wird? nach dem ein trad einen t/p hat kann ja ein andere trade geöffnet werden
also ich habe das schon mal mit einem buystop probiert aber es hat nicht geklappt
int MagicNumber = 1231231232;
double LotSize = 0.01;
extern int Risk_Enable_1_ON_0_OFF = 1;
extern int Risk_Percent = 10;
extern int MaxOpenTrades = 7;
extern int EntryDistance = 20;
extern int TakeProfit = 10;
int i, LimitAction, BuyAction;
int start()
{
int TotalBuy=0;
if(OrdersTotal()>0){
for(int a=1; a<=OrdersTotal(); a++)
{if (OrderSelect(a-1,SELECT_BY_POS)==true)
{if(OrderMagicNumber()==MagicNumber && OrderType()==OP_BUY)
TotalBuy++;
}}}
if (Open[i+1]>Close[i+1] && Open[i+2]>Close[i+2] && Open[i+3]>Close[i+3])
{OrderSend(Symbol(),OP_BUYLIMIT,LotsOptimized(),Ask-(EntryDistance*0.0001),0,Ask-(100*0.0001),(Ask-(EntryDistance*0.0001)+(TakeProfit*0.0001)),"",MagicNumber,0);
}
}
void ClosePendingOrder() {
int total = OrdersTotal();
for(int i=total-1;i>=5;i--)
{
OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
bool result = false;
switch(type)
{
case OP_BUYLIMIT :
case OP_BUYSTOP :
case OP_SELLLIMIT :
case OP_SELLSTOP : result = OrderDelete( OrderTicket() );
}
if(result == false)
{
Alert("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
Sleep(3000);
}
}
return(0);
}
double LotsOptimized()
{
double lot=LotSize;
if (Risk_Enable_1_ON_0_OFF==1)
{double risk=NormalizeDouble(Risk_Percent/100.0,2);
//---- select lot size
lot=NormalizeDouble(AccountFreeMargin()*risk/1250.0,2);
//---- return lot size
if(lot<0.01) lot=LotSize;
if(lot>50.00) lot=50.00;}
return(lot);
}
Ich weiß ist nicht die beste Programmierung aber funzt soweit.
Also es wird ja alles so gemacht wie es soll aber ich möchte das er nicht jedes BUYLIMIT Kauft, kann man eine begrenzung machen das zum beispiel nur max 70% des Kontostandes in Trades umgesetzt wird? nach dem ein trad einen t/p hat kann ja ein andere trade geöffnet werden
also ich habe das schon mal mit einem buystop probiert aber es hat nicht geklappt
Bearbeitet von BASCH86A