Thema: Hedge EA
Einzelnen Beitrag anzeigen
  #14 (permalink)  
Alt 15.12.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

Er ist eigentlich (erst mal) für Forex versucht worden. Mehr als ca. 20 Spread wird nix für ihn sein.

Im Anhang der neueste Versuch. Nix mehr mit Ticket, nur noch select by pos. Mach mir zu viele Sorgen, dass er die Tickets irgendwann mal vergisst.

Die neue Sorge ist jetzt, dass er ohne nach Ticket aus zu wählen, falsche Orders für weitere Funktionen benutzt. Mal angenommen man hat

1.
Zwei Sells geöffnet

2.
weitere vier Sells geöffnet

3.
weitere acht Sells geöffnet

und so weiter. Dann weiß ich nicht, ob das mit OrderSelect() funktioniert wie es soll. Er soll z.B. in dem Fall eben die letzten 8 Sells aus 3. auswählen. Nach denen wird geprüft, ob er noch mehr öffnen soll, oder, wenn die allererste Sell-Order ihr Gewinn-Ziel erreicht hat, alle offenen Orders, egal ob Buy oder Sell, egal ob im Gewinn oder im Verlust, schließen soll.
Code:
//=============================================================================================================
// C L O S E   A L L   O R D E R S   B Y   S E L L   D I S T
//=============================================================================================================
// FirstSell raus suchen.
for(t=OrdersTotal()-1;t>=0;t--){
if(OrderSelect(t,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiSel){

//Wenn FirstSell Gewinn-Dist erreicht hat...
  FiSelOOP_DCAO = NormalizeDouble( OrderOpenPrice() - Dist_CAO *_Point,_Digits);
  if( Ask < FiSelOOP_DCAO ){

//  ...Lots erhöhen...
    Lots = OrderLots() + LotsPlus; // ?

//  ...und alle Orders schließen.
    for(u=OrdersTotal()-1;u>=0;u--){
    if(OrderSelect(u,SELECT_BY_POS)){
    if(OrderSymbol()==Symbol()){
      if(OrderMagicNumber()==MN_FiBuy){
        if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
        if(IsTradeContextBusy()==true)Sleep(slMS);}
      if(OrderMagicNumber()==MN_NeBuy){
        if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
        if(IsTradeContextBusy()==true)Sleep(slMS);}
      if(OrderMagicNumber()==MN_FiSel){
        if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
        if(IsTradeContextBusy()==true)Sleep(slMS);}
      if(OrderMagicNumber()==MN_NeSel){
        if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
        if(IsTradeContextBusy()==true)Sleep(slMS);}
    } } }
//-----------------------------------------------------------------------------------------------------------*/
} } } } }
//=============================================================================================================
// C L O S E   A L L   O R D E R S   B Y   B U Y   D I S T
//=============================================================================================================
//FirstBuy raus suchen.
for(v=OrdersTotal()-1;v>=0;v--){
if(OrderSelect(v,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiBuy){

//Wenn FirstBuy Gewinn-Dist erreicht hat...
  if( Bid > FiBuyOOP_DCAO ){
          
//...Lots erhöhen...
    Lots = OrderLots() + LotsPlus; // ?

//...und alle Orders schließen.
    for(w=OrdersTotal()-1;w>=0;w--){
    if(OrderSelect(w,SELECT_BY_POS)){
    if(OrderSymbol()==Symbol()){
      if(OrderMagicNumber()==MN_FiSel){
        if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
        if(IsTradeContextBusy()==true)Sleep(slMS);}
      if(OrderMagicNumber()==MN_NeSel){
        if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
        if(IsTradeContextBusy()==true)Sleep(slMS);}
      if(OrderMagicNumber()==MN_FiBuy){
        if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
        if(IsTradeContextBusy()==true)Sleep(slMS);}
      if(OrderMagicNumber()==MN_NeBuy){
        if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
        if(IsTradeContextBusy()==true)Sleep(slMS);}
} } }
//-----------------------------------------------------------------------------------------------------------*/
} } } } }
Angehängte Dateien
Dateityp: mq4 LoShDistV3.mq4 (38,4 KB, 3x aufgerufen)