Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 204

 

Hola a todos.

Tengo una pregunta. Escribí un EA sobre Martin. Cuando modifico las órdenes y pongo el TakeProfit, vuela al cielo. Y esto sólo ocurre en la cuenta real. En el Probador de Estrategias todo está bien, y todo está bien en la demo. No entiendo cuál es el truco.

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

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

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

if(OrderSelect(i,SELECT_BY_POS))

if(OrderSymbol()==Symbol())

if(OrderMagicNumber()==Magic)

{

if(OrderType()==OP_BUY)

{

BuyPrice+=OrderOpenPrice()*OrderLots();

BuyLot+=Lotes de compra();

}

if (OrderType()==OP_SELL)

{

SellPrice+=OrderOpenPrice()*OrderLots();

SellLot+=Lotes de venta();

}

}

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 = OrdersTotal()-1; i>=0; i--)

if(OrderSelect(i,SELECT_BY_POS))

if(OrderSymbol()==Symbol())

if(OrderMagicNumber()==Magic)

{

if(OrderType()==OP_BUY)

{

si(b==1)

{ si(OrderTakeProfit()==0)

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

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

si (b>1)

if(OrderTakeProfit()!=BuyAverange)

if(Pregunta<CompraAvería)

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

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

}

if (OrderType()==OP_SELL)

{

si(s==1)

if(OrderTakeProfit()==0)

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

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

si (s>1)

if(OrderTakeProfit()!=SellAverange)

if(Oferta>Venta de rango)

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

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

}

}

 

Colegas: he decidido escribir aquí porque no sé dónde más ir. Por favor, corrija - en MT 4 - cuando se guarda un perfil por defecto - por defecto - cuando se ejecutan varios robots en varias pestañas - en general este tema de abajo eurobucks, poundbucks, etc. - Cuando se reinicia el terminal - se confunde y cuando se carga el perfil por defecto - también se confunde - esto es MUY incómodo, tengo que ordenar manualmente la secuencia - qué vino después de qué, etc.


¿Se puede arreglar?

 
#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);

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

¡Buenos días!

¿Por qué el gráfico en mt4 es diferente del gráfico en mt5? Y si es posible, ¿cómo puedo transferir el gráfico de mt5 a mt4? (Sólo mi corredor utiliza los datos de precios como en mt5, pero todos mis indicadores favoritos están en mt4)

 

¿Pueden decirme por qué no funciona el servicio postal?


 
Vitaly Muzichenko:

¿Pueden decirme por qué no funciona el envío a la oficina de correos?


¿Quizás de quién y para quién debería ser diferente?

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

¿Quizás de quién y para quién debería ser diferente?

Ya lo he probado, nada funciona.

 
Vitaly Muzichenko:

Ya lo he probado y no funciona.

Ahora todos los correos requieren que se genere una contraseña independiente para una aplicación de terceros. Lea la ayuda de su programa de correo: lo más probable es que tenga que generar una contraseña distinta.


Además, debe especificar el puerto exacto del servidor SMTP, así:

smtp.ukr.net:465
 
Vladimir Karputov:

Ahora todos los correos requieren que se genere una contraseña independiente para una aplicación de terceros. Lee la ayuda de tu proveedor de correo electrónico: probablemente tendrás que generar una contraseña distinta.

Además, debe especificar el puerto exacto del servidor SMTP, así:

Tak-zhe intentó - no fue.

El puerto fue prescrito: smtp.ukr.net:465


 
¿Funciona con alguno de los correos?