Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 46

 
KarpovNikolay:

Olá a todos. Sou novo no comércio, estou em demonstração com Expert Advisors, mas quero começar de verdade com $45. Estou testando EAs por enquanto, portanto, quero usar sinais. Eu uso o MT4. Selecionei uma lista da qual gostaria que você me ajudasse a escolher o melhor sinal. Aqui está a 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

É a sorte de principiante! Mas é melhor não perder tempo, estudar o comércio, a língua! Talvez você tenha sorte!
 
Boa tarde. ajude-me, por favor, se a variável sig=1 precisa da variável pol para lembrar o equilíbrio e não mudar seu valor, não importa quanto tempo continue a aparecer e se sig=1 novamente para lembrar a variável atual, por favor, me dê o código
 
sannin:
Boa tarde. ajude-me, por favor, se a variável sig=1 precisa da variável pol para lembrar o equilíbrio e não mudar seu valor, não importa quanto tempo continue a aparecer e se sig=1 novamente para lembrar a variável atual, por favor, me dê o código
    if (сиг == 1) pol = AccountBalance();
 
TarasBY:


se o equilíbrio mudar, o sexo será igual ao novo equilíbrio

isto é imediatamente visível se você fizer o seguinte

int pol;
Comentário("\n equilíbrio: ", pol);

pol=AccountBalance();

 

Inventei um consultor especializado para testar o comércio, mas não consigo descobrir uma coisa...

A baía/venda é aberta usando o máximo e mínimo MAs

// Condição para abrir posição de compra
if(MA_L1<MA_L0&&Ask<=MA_L0&MA_0>MA_1&&HA_up>HA_dw)

// Condição para abrir uma posição de VENDA
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);
  }

Pergunta: Se a posição na vela atual não estiver fechada (as condições não chegaram), como fechá-la na próxima vela, quando ela corresponder a MA_0= iMA ( 0, 0, 3, 0, MODE_EMA, PRICE_MEDIAN, 0 );

Temos uma condição de fechamento: cruzar o alto ou o baixo da vela atual, mas precisamos da posição para fechar na próxima vela depois que ela for aberta.

Podemos escrever se ( NormalizeDouble ( MathAbs (MA_0-Ask), Dígitos )< Ponto ), mas como preencher a condição da segunda vela aberta.


Se você puder responder com código, o exemplo é mais claro.

 
sannin:


se o saldo mudar, o pol será igual ao novo saldo

Isto é imediatamente visível se você fizer o seguinte

int pol;
Comentário("\n equilíbrio: ", pol);

pol=AccountBalance();

Você não pode verificar nada com este código. E a variável pol deve ser declarada globalmente, assim como a variável sig.
 
TarasBY:
Este código não verifica nada. E a variável pol deve ser declarada globalmente, assim como a variável sig.


bem... como fazê-lo... o soment mostra o valor atual da variável pol

no início, metade do pedido mostra o saldo inicial

abro uma ordem e meu saldo é igual ao inicial, mas se eu fechar com lucro ou vice-versa o saldo muda

Preciso que o sexo se torne um novo equilíbrio sob certas condições e até que estas condições sejam cumpridas, ele é igual ao equilíbrio inicial.

 
borilunad:
Para o código MQL4, use SRC e todos podem descobrir e ajudar você!

Obrigado, eu saberei.
 
sannin:


bem... como fazê-lo... o comentário mostra o valor atual da variável sexo

no início, metade do pedido mostra o saldo inicial

abro uma ordem e meu saldo é igual ao inicial, mas se eu fechar com lucro ou vice-versa o saldo muda

preciso que o piso se torne um novo equilíbrio sob certas condições e até que as condições sejam cumpridas, o piso é igual ao equilíbrio inicial

Há uma categoria de pessoas que não sabem como ouvir, é quase impossível ajudá-las.
 
TarasBY:
Há uma categoria de pessoas que não sabem como ouvir, é quase impossível ajudá-las.


Olá, ajude-me, por favor, ajude-me se eu precisar da variável pol para armazenar o saldo quando a variável sig=1 sem alterar seu valor, não importa por quanto tempo ela continue a ser exibida, e se sig=1 novamente eu precisar armazenar a variável atual , por favor, me dê o código

concordo

Todo mundo é um espertinho.

Desculpe... o problema é que há dois dias eu temia a tarefa...

Eu não pediria ajuda.