[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 405

 
Некоторые ДЦ на реальных счетах именам символов присваивают всякие префиксы типа "." или "FXF".

Как мне подставлять эти префиксы?

Try string StringConcatenate(...)

 
Dimka-novitsek:

Verstanden, ich werde es tun...

Außerdem funktioniert die Bedingung nicht.

Es funktioniert nicht "nicht", es kommt nur aus demselben Grund wie bei X nicht an.

Dies ist deutlich daran zu erkennen, dass es in Alert keine Signale von i gibt

 
ilunga:

es nicht "nicht funktioniert", sondern nur aus dem gleichen Grund wie bei X nicht ankommt

Dies ist deutlich daran zu erkennen, dass es keine Signale von i in Alert gibt.


Ja, das ist richtig...
 
Hurra, sage ich!!!!!!
//+------------------------------------------------------------------+
//|                                                    для лавин.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
 int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN;
   //  R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;
     
     
int start()
  {       int X,Y; double price=(Ask+Bid)/2;            
//----
       Alert ("OrdersTotal()",OrdersTotal());


 for(int i=OrdersTotal();i>0;i--){Alert ("i", i);if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000){
OrderSelect(i,SELECT_BY_POS );if(OrderType( )==OP_BUYSTOP){X++;}}}Alert ("X", X);
if (X==0){


   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, price +otstup*Point, Point* 3, R1, price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); }
   

 for ( i=OrdersTotal();i>0;i--){Alert ("i", i); OrderSelect(i,SELECT_BY_POS );if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()) { 
if(OrderType( ) ==OP_SELLSTOP) { Y++;}}}Alert ("Y", Y);
 if (Y==0){ 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, price -otstup*Point, Point* 3,R2, price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    }       
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
ilunga:

Nun, die Option "on the fly" hat funktioniert:

Ja, so funktioniert es. Ich danke Ihnen!
 
Puh!!! Hurra!!! Wir haben es geschafft!!! Alles klar!!!
 

Guten Tag. Das ist ein Problem, der Expert Advisor, den ich geschrieben habe, hängt sich nach einer bestimmten Zeit auf? Wenn ich es deinstalliere, heißt es, dass es durch Zeitüberschreitung heruntergefahren wird. Was ist der Grund dafür?

//+------------------------------------------------------------------+
//|                                                      RSITest.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  int deal, cnt;
  double TotalProfit;
//----
   // Проверяем, сободен ли торговый поток
if (!IsTradeAllowed())
{
return(0);
}


if (OrdersTotal() == 0)
   {
      while(true)
      {
         //*********************************** Открываем Buy ордер  ***********************************
         if (iRSI(NULL,0,14,PRICE_CLOSE,0) > iRSI(NULL,0,14,PRICE_CLOSE,1))
         { 
            if (iRSI(NULL,0,14,PRICE_CLOSE,0) > 60 && iRSI(NULL,0,14,PRICE_CLOSE,1) < 60)
            {
               deal = OrderSend(Symbol(),OP_BUY,0.1,Ask,0,iLow(NULL,0,0)-20*Point,0,"Long EUR/USD",0,0,CLR_NONE);
               if (deal > 0) Print("Long");
               else Print(GetLastError());
               return(0);
            }
         }
         //*********************************** Открываем Sell ордер  **********************************
         if (iRSI(NULL,0,14,PRICE_CLOSE,0) < iRSI(NULL,0,14,PRICE_CLOSE,1))
         { 
            if (iRSI(NULL,0,14,PRICE_CLOSE,0) < 40 && iRSI(NULL,0,14,PRICE_CLOSE,1) > 40)
            {
               deal = OrderSend(Symbol(),OP_SELL,0.1,Bid,0,iHigh(NULL,0,0)+20*Point,0,"Short EUR/USD",0,0,CLR_NONE);
               if (deal > 0) Print("Short");
               else Print(GetLastError());
               return(0);
            }
         }
      }
   }      
//else
//if
   //{
   for (cnt=0;cnt<OrdersTotal();cnt++)
      {
      if (OrderSelect(cnt, SELECT_BY_POS)==true)
      {
         TotalProfit += OrderProfit();
         if (TotalProfit>=2 || iRSI(NULL,0,14,PRICE_CLOSE,0)<iRSI(NULL,0,14,PRICE_CLOSE,1))
         {
            if (OrderType()== OP_BUY)
            {         
               // Закрываем и отдыхаем 15 минут
               OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE);
           //    Sleep(900000);
               return(0);
            }
         }
         if (TotalProfit>=2 || iRSI(NULL,0,14,PRICE_CLOSE,0)>iRSI(NULL,0,14,PRICE_CLOSE,1)) 
         {  
            if (OrderType()== OP_SELL)
            {     
               // Закрываем и отдыхаем 15 минут    
               OrderClose(OrderTicket(),OrderLots(),Ask,0,CLR_NONE);
           //    Sleep(900000);
               return(0);
            }
         }
      }
      }   
    //}


//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Entfernen Sie die while-Schleife, sie ist überflüssig.
 
Ich danke Ihnen vielmals. Eine weitere Frage, ich habe 15 min. Zeitrahmen, sagen wir, eine Bestellung wurde bei 18-38-55 geschlossen, wie sollte ich meine EA nicht arbeiten, bis 18-45-00, d.h. bis der nächste bar?
 
Schauen Sie unter https://www.mql5.com/ru/forum/133552 nach, wie die Timebar-Variable in Ihrem Fall implementiert ist (mit einigen Änderungen).