Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 46

 
KarpovNikolay:

Ciao a tutti. Sono nuovo del trading, sono seduto su demo con Expert Advisors, ma voglio iniziare in modo reale con 45$. Sto testando gli EAs per ora, quindi voglio usare i segnali. Io uso MT4. Ho selezionato una lista dalla quale vorrei che mi aiutaste a scegliere il miglior segnale. Ecco la lista:

https://www.mql5.com/ru/signals/10276

https://www.mql5.com/ru/signals/11021

https://www.mql5.com/ru/signals/6283

https://www.mql5.com/ru/signals/10964

https://www.mql5.com/ru/signals/9649

È la fortuna del principiante! Ma è meglio non perdere tempo, studiare il trading, la lingua! Forse sarai fortunato!
 
Buon pomeriggio. aiutatemi per favore se la variabile sig=1 ha bisogno della variabile pol per ricordare il saldo e non cambiare il suo valore non importa per quanto tempo continuerà a mostrare e se sig=1 di nuovo per ricordare quello attuale per favore datemi il codice
 
sannin:
Buon pomeriggio. aiutatemi per favore se la variabile sig=1 ha bisogno della variabile pol per ricordare il saldo e non cambiare il suo valore non importa per quanto tempo continuerà a mostrare e se sig=1 di nuovo per ricordare quello attuale per favore datemi il codice
    if (сиг == 1) pol = AccountBalance();
 
TarasBY:


se il saldo cambia, il sesso sarà uguale al nuovo saldo

questo è immediatamente visibile se si fa quanto segue

int pol;
Comment("\n saldo: ", pol);

pol=AccountBalance();

 

Ho creato un Expert Advisor per testare il commercio, ma non riesco a capire una cosa...

Bay/sell è aperto usando le MA massime e minime

// Condizione per aprire la posizione BUY
if(MA_L1<MA_L0&&Ask<=MA_L0&MA_0>MA_1&&HA_up>HA_dw)

// Condizione per aprire una posizione SELL
if(MA_H1>MA_H0&&Bid>=MA_H0&MA_0<MA_1&HA_up<HA_dw)

#include <b-Lots.mqh>
extern double TrailingStop = 30;
extern double Sploss = 15;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start() {
   double HA_up,HA_dw;
   double MA_H0,MA_H1,MA_L0,MA_L1,MA_0,MA_1;
   int i, cnt, ticket, total;
   bool flag=true;

   if(Bars<100) {
      Print("bars less than 100");
      return(0); 
   }
// Проверяем стоит ли открываться
   
   cnt=OrdersHistoryTotal()-1;
   for(i=cnt;i>=0;i--) {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY )) continue;
      if(OrderOpenTime()>=Time[0]) { // Time[0] - если позиция открывается на нулевом баре текущего символа
         flag=false;
         break;
      }
   }
   cnt=OrdersTotal()-1;
   for(i=cnt;i>=0;i--) {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if(OrderOpenTime()>=Time[0]) { // Time[0] - если позиция открывается на нулевом баре текущего символа
         flag=false;
         break;
      }
   }
   if(!flag) return(0); 
//-----------------------------------------------
   MA_H0=iMA(0,0,3,0,MODE_SMA,PRICE_HIGH,0);
   MA_H1=iMA(0,0,3,0,MODE_SMA,PRICE_HIGH,1);
   MA_0=iMA(0,0,3,0,MODE_EMA,PRICE_MEDIAN,0);
   MA_1=iMA(0,0,3,0,MODE_EMA,PRICE_MEDIAN,1);
   MA_L0=iMA(0,0,3,0,MODE_SMA,PRICE_LOW,0);
   MA_L1=iMA(0,0,3,0,MODE_SMA,PRICE_LOW,1);
   HA_up=iCustom(0,0,"Heiken Ashi",3,0);
   HA_dw=iCustom(0,0,"Heiken Ashi",2,0);

//задали все данные 

   total=OrdersTotal();
   if(total<1) 
     {
      // Проверка свободной маржи
      if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return(0);  
        }
      // Условие открытие позиции BUY
      if(MA_L1<MA_L0&&Ask<=MA_L0&&MA_0>MA_1&&HA_up>HA_dw)
        {
         Lots=GetSizeLot();
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-Sploss*Point,0,"",16384,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(0); 
        }
      // Условие открытие позиции SELL
      if(MA_H1>MA_H0&&Bid>=MA_H0&&MA_0<MA_1&&HA_up<HA_dw)
        {
         Lots=GetSizeLot();
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+Sploss*Point,0,"",16384,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()); 
         return(0); 
        }
      return(0);
     }
    
   for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   
         OrderSymbol()==Symbol())  
        {
         if(OrderType()==OP_BUY)   // длинная позиция открыта
           {
           if(NormalizeDouble (MathAbs(MA_H0-Bid),Digits)<Point)
                {
                 OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); 
                 return(0); 
                }
            // трейлинг-стоп для длинной позиции
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else 
           {
           if(NormalizeDouble (MathAbs(MA_L0-Ask),Digits)<Point)
              {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); 
               return(0); 
              }
            // трейлинг-стоп для короткой позиции
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
  }

Domanda: se la posizione sulla candela corrente non è chiusa (le condizioni non sono arrivate), come chiuderla sulla prossima candela, quando corrisponde a MA_0= iMA ( 0, 0, 3, 0, MODE_EMA, PRICE_MEDIAN, 0 );

Abbiamo una condizione di chiusura: attraversare il massimo o il minimo della candela corrente, ma abbiamo bisogno che la posizione si chiuda sulla prossima candela dopo essere stata aperta.

Possiamo scrivere se ( NormalizeDouble ( MathAbs (MA_0-Ask), Digits )< Point ), ma come soddisfare la condizione della seconda candela aperta.


Se puoi rispondere con del codice, l'esempio è più chiaro.

 
sannin:


se il saldo cambia, pol sarà uguale al nuovo saldo

Questo è immediatamente visibile se si fa quanto segue

int pol;
Comment("\n saldo: ", pol);

pol=AccountBalance();

Non si può controllare nulla con questo codice. E la variabile pol deve essere dichiarata globalmente, così come la variabile sig.
 
TarasBY:
Questo codice non controlla nulla. E la variabile pol deve essere dichiarata globalmente, così come la variabile sig.


bene... come fare... il soment mostra il valore attuale della variabile pol

all'inizio, la metà dell'ordine mostra il saldo iniziale

apro un ordine e il mio saldo è uguale a quello iniziale ma se chiudo in profitto o viceversa il saldo cambia

Ho bisogno del sesso per diventare un nuovo equilibrio a certe condizioni e finché queste condizioni non sono soddisfatte, è uguale all'equilibrio iniziale.

 
borilunad:
Per il codice MQL4, usa SRC e tutti possono capirlo e aiutarti!

Grazie, lo saprò.
 
sannin:


bene... come fare... il commento mostra il valore attuale della variabile sesso

all'inizio, la metà dell'ordine mostra il saldo iniziale

apro un ordine e il mio saldo è uguale a quello iniziale ma se chiudo in profitto o viceversa il saldo cambia

ho bisogno che il pavimento diventi un nuovo saldo sotto certe condizioni e finché le condizioni non sono soddisfatte il pavimento è uguale al saldo iniziale

C'è una categoria di persone che non sa ascoltare, è quasi impossibile aiutarle.
 
TarasBY:
C'è una categoria di persone che non sa ascoltare, è quasi impossibile aiutarle.


Ciao, aiutami per favore se ho bisogno che la variabile pol memorizzi il saldo quando la variabile sig=1 senza cambiare il suo valore, non importa quanto tempo continua a visualizzare, e se sig=1 di nuovo ho bisogno di memorizzare quello attuale , per favore dimmi il codice

sono d'accordo

Tutti sono furbi.

Mi dispiace... il fatto è che ho temuto il compito per due giorni...

Non chiederei aiuto.