Ist nen relativ komplexer EA.
Um ihn etwas übersichtlicher und einfacher zu machen:
Am Ende sollen ja alle offenen Orders geschlossen werden.
-1. Sell
-1. Buy
-und alle danach geöffneten Sell- und Buy-Orders. Statt für jede davon ne extra OrderClose-Funktion aufzurufen, könnte man vielleicht Alle mit Einer schließen:
Code:
for(q=OrdersTotal()-1;q>=0;q--){
if(OrderSelect(q,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if ( OrderMagicNumber() == 1 || 2 || was-auch-immer ){
OC=OrderClose(NULL,NULL,NULL,Slippage,clrRed );
Eigentlich sind die Werte ja egal, hauptsache, alle Orders werden geschlossen.
Zur Zeit siehts so aus:
Code:
// Wenn FirstBuy Gewinn-Dist doch erreicht hat...
if( Bid >= FiBuyOOP_DistCAO ){
// ...Lots erhöhen...
Lots = OrderLots() + LotsPlus; // ?
// ...und alle Orders schließen.
for(q=OrdersTotal()-1;q>=0;q--){
if(OrderSelect(q,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_NextSel){
if(IsTradeAllowed()==true)OCsel=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_FirstSel){
if(IsTradeAllowed()==true)OCsel=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_NextBuy){
if(IsTradeAllowed()==true)OCbuy=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_FirstBuy){
if(IsTradeAllowed()==true)OCbuy=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
} } } }