Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 204

 

Olá a todos.

Tenho uma pergunta. Eu escrevi um EA sobre Martin. Quando eu modifico ordens e defino TakeProfit, ele voa para o céu. E isto só acontece por conta real. No Testador de Estratégia tudo está OK, e tudo está OK na demonstração. Eu não entendo qual é o truque.

//+------------------------------------------------------------------+

dobro BuyAverange=0, SellAverange=0, SellPrice=0, BuyPrice=0, BuyLot=0,SellLot=0;

for(int i = OrderTotal()-1; i>=0; i--)

if(OrderSelect(i,SELECT_BY_POS))

if(OrderSymbol()==Symbol())

if(OrderMagicNumber()==Magic)

{

if(OrderType()==OP_BUY)

{

BuyPrice+=OrderOpenPrice()*OrderLots();

BuyLot+=OrderLots();

}

se (OrderType()==OP_SELL)

{

SellPrice+=OrderOpenPrice()*OrderLots();

SellLot+=OrderLots();

}

}

if(b>1&&BuyLot>0)

BuyAverange=NormalizeDouble(BuyPrice/BuyLot+Profit*Point(),Digits())

if(s>1&&SellLot>0)

SellAverange=NormalizeDouble(SellPrice/SellLot-Profit*Point(),Digits())

//+-----------------------------------------------------------

for(int i = OrderTotal()-1; i>=0; i--)

if(OrderSelect(i,SELECT_BY_POS))

if(OrderSymbol()==Symbol())

if(OrderMagicNumber()==Magic)

{

if(OrderType()==OP_BUY)

{

if(b===1)

{ if(OrderTakeProfit()==0)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(OrderOpenPrice()+TakeProfit*Point(),Digits(),0,clrGreen)==false)

Imprimir("Errow N",GetLastError());

se (b>1)

if(OrderTakeProfit()!=BuyAverange)

if(Ask<BuyAverange)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(BuyAverange,Digits(),0,clrGreen)===false)

Imprimir("Errow N",GetLastError());

}

se (OrderType()==OP_SELL)

{

if(s===1)

if(OrderTakeProfit()==0)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(OrderOpenPrice()-TakeProfit*Point(),Digits(),0,clrGreen)==false)

Imprimir("Errow N",GetLastError());

se (s>1)

if(OrderTakeProfit()!=SellAverange)

if(Bid>SellAverange)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(SellAverange,Digits(),0,clrGreen)===false)

Imprimir("Errow N",GetLastError());

}

}

 

Colegas - decidi escrever aqui porque não sei para onde mais ir. Favor corrigir - no MT 4 - ao salvar um perfil padrão - padrão - ao executar vários robôs em várias abas - em geral este tema a partir de abaixo de eurobucks, poundbucks, etc. - Quando você reinicia o terminal - ele é misturado e ao carregar o perfil padrão - ele também é misturado - isso é MUITO inconveniente, tenho que ordenar manualmente a seqüência - o que veio depois do que, etc.


Pode ser consertado?

 
#property strict
#property copyright "Alex Kolodin"
#property link "www."
#property version "1.00"
#property  show_inputs

input color buy =clrGreen;
input color sell =clrCoral;
input int _width=3;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int i,k=OrdersHistoryTotal(), r=-1;
   string sy=Symbol();
   for(i=0; i<k; i++)
   {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
       if(OrderType()==OP_BUY)
        {
         if(OrderSymbol()==sy)
         {
          TrendCreate(0,"Trendline"+(string)OrderTicket(),0,
                        OrderOpenTime(),
                        OrderOpenPrice(),
                        OrderCloseTime(),
                        OrderClosePrice(),
                        buy,
                        STYLE_SOLID,
                        _width
                        );
        }    
         if(OrderType()==OP_SELL)
              {
               TrendCreate(0,"TrendLine"+(string)OrderTicket(),0,
                        OrderOpenPrice(),
                        OrderOpenTime(),
                        OrderCloseTime(),
                        OrderClosePrice(),
                        sell,            
                        STYLE_SOLID,
                        _width
                        );
              }
          }
         } 
 
 
      }
    }
    
//+------------------------------------------------------------------+
bool TrendCreate(const long chart_ID=0,
const string namename="trendLine",
const int sub_window=0,
datetime time1=0,
double price1=0,
datetime time2=0,

double price2=0,
const color clr=clrRed,
const ENUM_LINE_STYLE style=STYLE_SOLID,
const int width=1,
const bool back=false,
const bool selection=false, 
const bool ray_right=false,
const bool hidden=true,
const long z_order=0)
{

ResetLastError();
 if(!ObjectCreate(chart_ID,namename,OBJ_ARROW,sub_window,time1,price1,time2,price2))
     {
      Print(__FUNCTION__,
            ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
      return(false);
     }
     ObjectSetInteger(chart_ID,namename,OBJPROP_COLOR,clr);
     ObjectSetInteger(chart_ID,namename,OBJPROP_STYLE,style);
     ObjectSetInteger(chart_ID,namename,OBJPROP_WIDTH,width);
     ObjectSetInteger(chart_ID,namename,OBJPROP_BACK,back);
     ObjectSetInteger(chart_ID,namename,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,namename,OBJPROP_SELECTED,selection);
   ObjectSetInteger(chart_ID,namename,OBJPROP_RAY_RIGHT,ray_right);
   ObjectSetInteger(chart_ID,namename,OBJPROP_HIDDEN,hidden);
   ObjectSetInteger(chart_ID,namename,OBJPROP_ZORDER,z_order);
   return(true);

//
     }Здраствуй, читающий уважаемый(АЯ), вот такой код по идее выдаст трендовую линию по двум точкам. Компилируется, а результата нет. Помогите, спасибо.
 

Bom dia!

Por que a tabela em mt4 é diferente da tabela em mt5? E se possível, como transfiro o gráfico do mt5 para o mt4? (Apenas meu corretor usa dados de preços como em mt5, mas todos os meus indicadores favoritos estão em mt4)

 

Você pode me dizer por que o serviço postal não está funcionando?


 
Vitaly Muzichenko:

Você pode me dizer por que enviar para os correios não está funcionando?


Talvez de quem e para quem deveria ser diferente?

 
Сергей Таболин:

Talvez de quem e para quem deveria ser diferente?

Sim, eu já tentei isso, nada funciona.

 
Vitaly Muzichenko:

Eu já tentei, não funciona.

Todos os remetentes agora exigem que você gere uma senha separada para uma aplicação de terceiros. Leia a ajuda de seu remetente - o mais provável é que você precise gerar uma senha separada.


Além disso, você precisa especificar a porta exata do servidor SMTP, como esta:

smtp.ukr.net:465
 
Vladimir Karputov:

Todos os remetentes agora exigem que você gere uma senha separada para uma aplicação de terceiros. Leia a ajuda de seu provedor de e-mail - você provavelmente precisará gerar uma senha separada.

Além disso, você precisa especificar a porta exata do servidor SMTP, como esta:

Tak-zhe tentou - não foi.

O porto foi prescrito: smtp.ukr.net:465


 
Funciona mesmo com algum dos carteiros?