Thema: Hedge EA
Einzelnen Beitrag anzeigen
  #48 (permalink)  
Alt 12.07.20
MA-EA MA-EA ist offline
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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;

 } } } } } } } } } }
Angehängte Dateien
Dateityp: mq4 LoSh_AlwInv_Dist_v4.mq4 (26,3 KB, 1x aufgerufen)