Moin.
Gibt wohl keine Möglichkeit, rauszufinden, ob der Broker gerade überhaupt Orders an nimmt oder nicht.
Oder geht das vielleicht über Pending-Orders? Wenn er die annimmt, kann man sie ja gleich wieder löschen und dann die eigentlichen Markt-Orders raus schicken.
Anfängerfrage:Kann man eigentlich mehrere Orders auf einmal auswählen und vergleichen? Oder geht es nur mit mehreren Schleifen?
Code:
extern string esMOBSC1="Max Orders";
extern string esMOBSC2="Sell / Buy";
extern string esMOBSC3="concurrently";
extern int MOBSC_Def=0; // Default Wert
extern int MOBSC_Sel=0; // Start-Werte.
extern int MOBSC_Buy=0; // Werden gleich nach OrderSend mit "++" erhöht.
extern int MOBSC_Max_Sel=2;
extern int MOBSC_Max_Buy=2;
Code:
extern double Def_Lots=0.01;
extern double LotsSel=0.01;
extern double LotsBuy=0.01;
extern string esLPOCP1="Lots Buy / Lots Sell";
extern string esLPOCP2="+ LotsPlus";
extern string esLPOCP3="if Order close";
extern string esLPOCP4="with Profit";
extern double LotsPlus=0.01;
Code:
for(int j=OrdersTotal()-1;j>=0;j--){
if(OrderSelect(j,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_Sel){
if( CLsel_D < OrderOpenPrice() ){
if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
if(IsTradeContextBusy()==true)Sleep(Sl_MS);
LotsSel = OrderLots() + LotsPlus;
if(MOBSC_Sel>=MOBSC_Max_Sel){
for(int k=OrdersTotal()-1;k>=0;k--){
if(OrderSelect(k,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_Buy){
if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
if(IsTradeContextBusy()==true)Sleep(Sl_MS);
MOBSC_Sel=MOBSC_Def;
MOBSC_Buy=MOBSC_Def;
LotsSel=Def_Lots;
LotsBuy=Def_Lots;
} } } } } } } } } }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Die eigentliche Buy-Order auswählen:
for(int l=OrdersTotal()-1;l>=0;l--){
if(OrderSelect(l,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_Buy){
if( CLbuy_D > OrderOpenPrice() ){
if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
if(IsTradeContextBusy()==true)Sleep(Sl_MS);
LotsBuy = OrderLots() + LotsPlus;
if(MOBSC_Buy>=MOBSC_Max_Buy){
for(int m=OrdersTotal()-1;m>=0;m--){
if(OrderSelect(m,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_Sel){
if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
if(IsTradeContextBusy()==true)Sleep(Sl_MS);
MOBSC_Sel=MOBSC_Def;
MOBSC_Buy=MOBSC_Def;
LotsSel=Def_Lots;
LotsBuy=Def_Lots;
} } } } } } } } } }