[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 561

 
delf:
Obrigado, é tão simples e direto que eu vou experimentar.
Algo está errado. Depois de Stor Loss está de volta à mesma direção novamente.
 
delf:
Algo está errado. Depois do STOPLoss, volta-se à mesma direção.

O que é StopLoss?

 

Olá!

Você pode me dizer quais arquivos precisam ser baixados e onde instalá-los no mt4 para obter esta janela?

Não entendo como fazê-lo naSimulação em diferentes períodos de tempo do instrumento em teste

Quero ver apenas três gráficos diários, de quatro horas e de hora em hora

Quero ver três gráficos diários, de quatro horas e horários. Por favor, ajude-me, não consegui fazer isso a noite toda!


 
ametist444:

Olá!

Você pode me dizer quais arquivos precisam ser baixados e onde instalá-los no mt4 para obter esta janela?

Não entendo como fazê-lo naSimulação em diferentes períodos de tempo do instrumento em teste

Quero ver apenas três gráficos diários, de quatro horas e de hora em hora

quero ver apenas três janelas em um período de tempo, quero ver apenas três gráficos, quero ver apenas três gráficos diários, de quatro horas e de hora em hora.

Você precisa abrir estas janelas programmaticamente a partir do MT4? Não tenho certeza, não sou muito bom nisso... :-)

Abrir algumas janelas manualmente e inserir o indicador ali, não uma opção?

 

Boa noite: Você poderia, por favor, aconselhar como entender

A quantidade de margem necessária para o tipo de ordem especificada na conta corrente e no ambiente atual do mercado sem levar em conta as ordens pendentes e as posições em aberto.

Você pode aproximar a função existente?

 

Eu também comecei a usar esta função em vez de muito

double     Lott  ( double     Lot ){
     if ( risk!=0)  Lot=AccountFreeMargin()*risk/10000 ; return (Lot);}  

OrderSend error 131 - volume errado. Com o depósito inicial de 10000 lote inicial 1. No entanto, algo não funciona.

 

Há algum tempo, , tenho tentado retrabalhar o bloco de compra próxima para fechar apenas as duas últimas posições de compra, mas falhou. Você pode dizer a como refazer o bloco ?

void Close_2buy()
{
   bool   result;
  double  close_price;
  int    cmd,error;
  bool close;

      for (int f=OrdersTotal()-1; f>=0; f--) // 
      {
         OrderSelect(f, SELECT_BY_POS);
         if (OrderSymbol()==Symbol() &&(OrderMagicNumber()==magic ) 
         && (OrderType() == OP_BUY )) 
         {
            close = False;
            {
               close_price = MarketInfo(OrderSymbol(), MODE_BID);
               close = True;
            }
               
            if (close) 
            {
               result=OrderClose(OrderTicket(), OrderLots(), close_price, 0, CLR_NONE);
               if(result!=TRUE)
               {error=GetLastError();Print("LastError = ", error);}
            }
            
         }
      }
}
 
Dimka-novitsek:

Eu também comecei a usar esta função em vez de muito

OrderSend error 131 - volume errado. Com o depósito inicial de 10000 lote inicial 1. No entanto, algo não funciona.


Eu uso esta. modifique-a para suas necessidades e tente (mudar AccountBalance() para AccountFreeMargin(), coloque sua variável. LotesDígitos)
//+------------------------------------------------------------------+
//|                                                         0000.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
////////////////////////////////////////////////////////////////////////|
extern int     Method         =1;      // Метод: 0-FixedLots, 1-часть //|
                                       //(Risk) от свободных средств  //|
                                       // нормированных по значению   //|
                                       // MeansStep(например Risk=    //|
                                       // 0.01,MeansStep=1000,если    //|
                                       // средств меньше 2000,лот     //|
                                       // равен 0.01,если средств     //|
                                       // стало 2000 или более - 0.02 //|
                                       // лота, 3000 или более - 0.03 //|
                                       // лота и т.д.).               //|
                                                                      //|
extern double  LOTS           =0.01;   // Количество лотов при        //|
                                       // Method=0.                   //|
                                                                      //|
extern double  Risk           =0.01;   // Риск. Часть от средств при  //|
                                       // FixedLot=false.             //|
                                                                      //|
extern double  MeansStep      =100.0;  // Шаг средств. Используется   //|
                                       // при Method=1.               //|     
////////////////////////////////////////////////////////////////////////|
//+------------------------------------------------------------------+//|
//|  Определяем "свой" минимальный размер или шаг лота на момент     |//|
//|  начала цикла в зависимости от размера баланса и установленного  |//|
//|  риска.                                                          |//|
//+------------------------------------------------------------------+//|
////////////////////////////////////////////////////////////////////////|
double fGetLotsSimple()                                               //|
   {                                                                  //|
   double LOTSTEP,lot;                                                //|
   double Means;                                                      //|
   switch (Method)                                                    //|
      {                                                               //|
      case 0:                                                         //|
         lot=LOTS;                                                    //|
      break;                                                          //|
      case 1:                                                         //|
         Means=AccountBalance();                                      //|
         if(Means<MeansStep)Means=MeansStep;                          //|
         lot=(MeansStep*MathFloor(Means/MeansStep))/MeansStep*Risk;   //|
      break;                                                          //|
      default:lot=LOTS;                                               //|
   }                                                                  //|
   if(lot<1.0/MathPow(10,LotsDigits))lot=1.0/MathPow(10,LotsDigits);  //|
   LOTSTEP=MarketInfo(Symbol(),MODE_LOTSTEP);                         //|
   lot=MathFloor(lot/LOTSTEP)*LOTSTEP;                                //|
   lot=NormalizeDouble(lot,LotsDigits);                               //|
   if(lot>AccountFreeMargin())lot=-1;                                 //|
   return(lot);                                                       //|
}                                                                     //|
////////////////////////////////////////////////////////////////////////|
)
 

Você pode me dizer o que poderia estar errado com este código? É uma parada móvel, mas quando testada, gera erro 1, quando modificada. Por que a ordem não é modificada?

Quando estava corrigindo este erro (até agora sem sucesso), ao compilar o código principal do Expert Advisor na função de impressão, ele começou a retornar um erro, dizendo que precisava de vírgulas invertidas, mas tudo está correto, e para corrigir este erro eu tenho que remover e colocar uma nova vírgula invertida...

bool trailingstop()
{
se ((OrderMagicNumber()==11111)==verdadeiro)
{
Imprimir("Manter posição de compra");
while(OrderCloseTime()==0)
{
if ((Bid-OrderStopLoss())>(StopLevel*Point))
{
if (OrderModify(OrderTicket(),OrderOpenPrice(),ND(Bid-StopLevel*Point),0,0))
Print("Stop Loss of the order with the number ",OrderTicket()," e o número mágico ",OrderMagicNumber()," mudado com sucesso para ",OrderStopLoss());
ou imprimir("O nível Stop Loss do pedido com o número ",OrderTicket()," e número mágico ",OrderMagicNumber(),". Erro ",GetLastError());
}
}
se (OrderCloseTime()>0)
{
Print("O pedido com o número ",OrderTicket()," e o número mágico ",OrderMagicNumber()," fechado ao preço ",OrderClosePrice()," com um lucro/perda ",OrderProfit())
retorno(true);
}
}
senão
{
se ((OrderMagicNumber()==22222)==verdadeiro)
{
Imprimir((Vender posição);
while(OrderCloseTime()==0)
{
if ((OrderStopLoss()-Ask)>(StopLevel*Point))
{
if (OrderModify(OrderTicket(),OrderOpenPrice(),ND(Ask+StopLevel*Point),0,0))
Print("Stop Loss of the order with the number ",OrderTicket()," e o número mágico ",OrderMagicNumber()," mudado com sucesso para ",OrderStopLoss());
ou imprimir("O nível Stop Loss do pedido com o número ",OrderTicket()," e número mágico ",OrderMagicNumber(),". Erro ",GetLastError());
}
}
se (OrderCloseTime()>0)
{
Print("O pedido com o número ",OrderTicket()," e o número mágico ",OrderMagicNumber()," fechado ao preço ",OrderClosePrice()," com um lucro/perda ",OrderProfit())
retorno(true);
}
}
caso contrário, retornar (falso);
}
}
 
Obrigado!!!