Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1538

 
Können Sie mir bitte sagen, wie ich das Geld abheben kann?
 
Anfrage gestern abgeschickt, mehr als 24 Stunden sind vergangen und kein Wort
 
ivlyeva.tatyana6:
Ich habe gestern eine Anfrage geschickt, mehr als ein Tag ist vergangen, und es ist still.

1. Gehen Sie zum nächsten Geldautomaten, stecken Sie die Karte ein, geben Sie den Pin-Code ein...

2. Gehen Sie zur nächsten Bank, nehmen Sie Blickkontakt auf und verfolgen Sie dann die Situation...

3. Gehen Sie auf den Markt. 3) Gehen Sie auf den Markt. Gehen Sie zur Bank. Abheben von Geldern (Sie können alle Gelder abheben, nicht nur Ihre eigenen...) ...

4. Wenn Sie Geld von MMM abheben müssen, dann hilft Ihnen auch der Tank nicht!

Und ernsthaft, das können Sie nicht!

 
//+------------------------------------------------------------------+
//|                                                  MACD Sample.mq4 |
//|                   Copyright 2005-2014, MetaQuotes Software Corp. |
//|                                              http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright   "2005-2014, MetaQuotes Software Corp."
#property link        "http://www.mql4.com"
input double TakeProfit    =3160;
input double Lots          =0.5;
input double TrailingStop  =1040;
input int OpenLevel =22;
input int CloseLevel=77;
input int    Period =85;
input int    Period1 =57;
int LastBars=0;
extern int Magic = 110725;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick(void)
  {
   
 
   int    cnt,ticket,total;
//---
// initial data checks
// it is important to make sure that the expert works with a normal
// chart and the user did not make any mistakes setting external 
// variables (Lots, StopLoss, TakeProfit, 
// TrailingStop) in our case, we check TakeProfit
// on a chart of less than 100 bars
//---
//--- Trade only if new bar has arrived
   if(LastBars!=Bars) LastBars=Bars;
   else return(0);
   if(Bars<100)
     {
      Print("bars less than 100");
      return;
     }
   if(TakeProfit<10)
     {
      Print("TakeProfit less than 10");
      return;
     }
//--- to simplify the coding and speed up access data are put into internal variables
   
   total=OrdersTotal();
   if(total<1)
     {
      //--- no opened orders identified
      if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ",AccountFreeMargin());
         return;
        }
      //--- check for long position (BUY) possibility
     if(iRSI(NULL,0,OpenLevel,PRICE_LOW,Period)>iRSI(NULL,0,CloseLevel,PRICE_HIGH,Period1)) 
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-TakeProfit*Point,Bid+TakeProfit*Point,"USDCADH4",Magic,0,Green);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
               Print("BUY order opened : ",OrderOpenPrice());
           }
         else
            Print("Error opening BUY order : ",GetLastError());
         return;
        }
      //--- check for short position (SELL) possibility
      if(iRSI(NULL,0,OpenLevel,PRICE_LOW,Period1)<iRSI(NULL,0,CloseLevel,PRICE_HIGH,Period)) 
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+TakeProfit*Point,Ask-TakeProfit*Point,"USDCADH4",Magic,0,Red);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
               Print("SELL order opened : ",OrderOpenPrice());
           }
         else
            Print("Error opening SELL order : ",GetLastError());
        }
      //--- exit from the "no opened orders" block
      return;
     }
//--- it is important to enter the market correctly, but it is more important to exit it correctly...   
   for(cnt=0;cnt<total;cnt++)
     {
      if(!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
         continue;
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         //--- long position is opened
         if(OrderType()==OP_BUY)
           {
            //--- should it be closed?
              if(iRSI(NULL,0,OpenLevel,PRICE_LOW,Period1)<iRSI(NULL,0,CloseLevel,PRICE_HIGH,Period)) 
              {
               //--- close order and exit
               if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet))
                  Print("OrderClose error ",GetLastError());
               return;
              }
            //--- check for trailing stop
            if(TrailingStop>0)
              {
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     //--- modify order and exit
                     if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green))
                        Print("OrderModify error ",GetLastError());
                     return;
                    }
                 }
              }
           }
         else // go to short position
           {
            //--- should it be closed?
           if(iRSI(NULL,0,OpenLevel,PRICE_LOW,Period)>iRSI(NULL,0,CloseLevel,PRICE_HIGH,Period1)) 
              {
               //--- close order and exit
               if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet))
                  Print("OrderClose error ",GetLastError());
               return;
              }
            //--- check for trailing stop
            if(TrailingStop>0)
              {
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     //--- modify order and exit
                     if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red))
                        Print("OrderModify error ",GetLastError());
                     return;
                    }
                 }
              }
           }
        }
     }
//---
  }
//+------------------------------------------------------------------+

Hallo. Bitte helfen Sie mir zu verstehen... Der Expert Advisor schließt die Trades anderer Leute oder öffnet seine eigenen nicht, wenn es Trades anderer Leute gibt.

 
darirunu1:

Hallo. Bitte helfen Sie mir zu verstehen... Der Expert Advisor schließt die Trades anderer Leute oder öffnet seine eigenen nicht, wenn es Trades anderer Leute gibt.

Wo ist Ihr Magier für die Auftragssuche?
 

Wenn es oben steht, schließt der Expert Advisor die manuell eröffneten Trades,

Wenn ich es so formuliere

 if(!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
         continue;
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol()&& OrderMagicNumber()==Magic)  // check for symbol

Wenn es irgendwelche manuell geöffneten Geschäfte gibt, wird der Expert Advisor keine anderen Geschäfte schließen, aber er wird auch keine eigenen Geschäfte öffnen, wenn es irgendwelche manuell geöffneten Geschäfte gibt.

 
darirunu1:

Wenn es oben steht, schließt der Expert Advisor die manuell eröffneten Trades,

Wenn ich es so formuliere

Wenn es irgendwelche manuell geöffneten Geschäfte gibt, wird der Expert Advisor keine anderen Geschäfte schließen, aber er wird auch keine eigenen Geschäfte öffnen, wenn es irgendwelche manuell geöffneten Geschäfte gibt.

müssen auch beim Öffnen durch einen Assistenten ausgewählt werden
 
MakarFX:
Ich brauche auch eine Auswahl der magischen Zahl bei der Eröffnung
 ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+TakeProfit*Point,Ask-TakeProfit*Point,"USDCADH4",Magic,0,Red);

Was ist das? Die Öffnung wird angezeigt. Wenn Sie mehrere Expert Advisors verwenden, gibt es kein Problem, sondern nur bei der manuellen Eröffnung einer Position auf dem Konto.

Sobald auf dem Konto manuell Geschäfte eröffnet werden, funktioniert der Expert Advisor nicht mehr.

Sobald ich dies im Code entferne, wird total=OrdersTotal();

if(gesamt<1)

EAs gehen geradeaus, eröffnen aber viele Trades

 
darirunu1:

Was ist das? Die Öffnung wird angezeigt. Wenn Sie mehrere Expert Advisors verwenden, gibt es kein Problem, sondern nur bei der manuellen Eröffnung einer Position auf dem Konto.

Sobald auf dem Konto manuell Geschäfte eröffnet werden, funktioniert der Expert Advisor nicht mehr.

Sobald ich dies im Code entferne, wird total=OrdersTotal();

if(gesamt<1)

EAs gehen geradeaus, eröffnen aber viele Trades.

Dies ist, was ich spreche - OrdersTotal() ist für alle Aufträge und Sie benötigen einen EA Auftrag

   if(CountOrders("", -1,  Magic)<1)
     {
     открытие ордеров
     }
//+----------------------------------------------------------------------------+
//| Подсчет ордеров                                                            |
//+----------------------------------------------------------------------------+
//| -1 - Все типы ордеров                                                      |
//|  0 - ордера типа BUY                                                       |
//|  1 - ордера типа SELL                                                      |
//|  2 - ордера типа BUYLIMIT                                                  |
//|  3 - ордера типа SELLLIMIT                                                 |
//|  4 - ордера типа BUYSTOP                                                   |
//|  5 - ордера типа SELLSTOP                                                  |
//+----------------------------------------------------------------------------+
int CountOrders(string symb="", int or_ty=-1, int magiс=-1) 
  {
   int cnt=0;
   if(symb=="0") symb=_Symbol;
   for(int pos=OrdersTotal()-1;pos>=0;pos--)
     {
      if(OrderSelect(pos,SELECT_BY_POS)==true)
        {
         if((OrderSymbol()==symb || symb=="")&&(or_ty<0 || or_ty==OrderType()))
           {
            if(magiс<0 || OrderMagicNumber()==magiс) cnt++;
           }
        }
     }
   return(cnt);
  }
 
MakarFX:

Das ist, was ich meine, OrdersTotal() ist alle Aufträge und Sie wollen EA Aufträge

if(CountOrders("", -1,  Magic)<1)
     {

Dies ist anstelle von

total=AuftragsSumme();

if(total<1) oder lassen wir das auch so?

Grund der Beschwerde: