Quem pode ajudar com o robô, por que ele não está funcionando? - página 6

 
Então qual é a culpa, ao menos me mostre?
 

aqui está minha função para mt4 ecn, ndd, stp ...

Nem um único erro em um ano

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

//| Função de abertura de pedidos (BeerGod) |

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

//| Parâmetros: |

//| sy - nome do instrumento ("" - símbolo atual) |

//| op - operação |

| //| ll - lote |

//| sl - nível de parada |

///| tp - tomar nível |

//| mn - MagicNumber |

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


bool OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int MagicNumber=0)

{

double MinLl = MarketInfo(Symbol(),MODE_MINLOT);

duplo MaxLl = MarketInfo(Symbol(),MODE_MAXLOT);

ll = NormalizeDuplo(ll,2);

se (ll < MinLll) ll = MinLll; caso contrário, ll = ll;

se (ll > MaxLl) ll = MaxLl; caso contrário, ll = ll;

se (op == 0) // Abertura de compra

{

// Verifique se há fundos livres disponíveis

if((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) ||| (GetLastError()==134))

{

Imprimir(sy," ",ll," É impossível abrir o pedido Comprar, não há dinheiro suficiente");

retorno(0);

}

RefreshRates();


// Ordem aberta

int ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,Comments,MagicNumber,0,BuyColor);

if(ticketbuy<0)

Print(sy," OpenPosition. OrderSend Buy Fail #",GetLastError()));

senão

Print(sy," OpenPosition. OrderSend Buy successfully");


// Dormir (Pausa);


// Modificar o pedido (estabelecer lucro e parar a perda)

se (sl !=0 ||| tp !=0)

{

//--- Os preços calculados de SL e TP devem ser normalizados

double BSLoss = NormalizeDouble(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))

double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))

//--- Se o valor do insumo for zero, substituir o preço de modificação por zero

se (sl === 0) BSLoss = 0;

se (tp == 0) BTProfit = 0;


bool resbuy = OrderModify (compra de bilhetes,OrderOpenPrice(),BSLoss,BTProfit,0,StopColor);

se(!resbuy)

Print(sy," OpenPosition. OrderModify Buy Fail #",GetLastError()));

senão

Print(sy," OpenPosition. OrderModify Buy successfully");

}

}


se (op == 1) // Venda Aberta.

{

// Verificar a disponibilidade de fundos gratuitos

if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) ||| (GetLastError()==134))

{

Imprimir(sy," ",ll," É impossível abrir a ordem Vender, não há dinheiro suficiente");

retorno(0);

}

RefreshRates();


// Ordem aberta

int ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,Comments,MagicNumber,0,SellColor);

if(ticketell<0)

Print(sy," OpenPosition. OrderSend Sell fail #",GetLastError()));

senão

Print(sy," OpenPosition. OrderSend Sell successfully");


// Dormir (Pausa);


// Modificar o pedido (estabelecer lucro e parar a perda)

se (sl !=0 ||| tp !=0)

{

//--- Os preços calculados de SL e TP devem ser normalizados

double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))

double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))

//--- Se o valor do insumo for zero, substituir o preço de modificação por zero

se (sl == 0) SSLoss = 0;

se (tp == 0) STProfit = 0;


bool ressell = OrderModify (bilhete,OrderOpenPrice(),SSLoss,STProfit,0,StopColor);

se(!ressell)

Print(sy," OpenPosition. OrderModify Sell fail #",GetLastError()));

senão

Print(sy," OpenPosition. OrderModify Sell successfully");

}

}

retorno(Verdadeiro);

}

//End

 
P.S. Moderadores, o código não pode ser inserido através do botão.
 
Vladimir Zubov:
P.S. Moderadores, o código não pode ser inserido através do botão.

Estou dando gratuitamente (sem custo) aulas online do Skype sobre inserção de código:)

 if (sl == 0) SSLoss = 0;
 
Karputov Vladimir:

Eu dou gratuitamente (sem custo) lições online do Skype sobre inserção de código:)

//+----------------------------------------------------------------------------+
//|    Функция открытия ордера  (BeerGod)                                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" - текущий символ)                   |
//|    op - операция                                                           |
//|    ll - лот                                                                |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - MagicNumber                                                        |
//+----------------------------------------------------------------------------+

bool OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int MagicNumber=0)
{
   double MinLl = MarketInfo(Symbol(),MODE_MINLOT);
   double MaxLl = MarketInfo(Symbol(),MODE_MAXLOT);
   ll = NormalizeDouble(ll,2);
   if (ll < MinLl) ll = MinLl; else ll = ll;
   if (ll > MaxLl) ll = MaxLl; else ll = ll;
   
   if (op == 0) // Открытие BUY
   {
      // Проверяем доступность свободных средств
      if((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134))
            {
               Print(sy," ",ll," It is impossible to open the order Buy, not enough money.");
               return(0);
            }
      RefreshRates();

      // Открываем ордер
      int ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,Comments,MagicNumber,0,BuyColor);
         if(ticketbuy<0)
         Print(sy," OpenPosition. OrderSend Buy fail #",GetLastError());
         else
         Print(sy," OpenPosition. OrderSend Buy successfully");

      // Sleep (Pause);

      // Модифицируем ордер (выставляем тейкпрофит и стоплосс)
      if (sl !=0 || tp !=0)
            {
            //--- Вычисленные значения цен SL и TP должны быть нормализованы
            double BSLoss = NormalizeDouble(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
            double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
            //--- Если входящие значения ноль то заменяем цену модификации на ноль
            if (sl == 0) BSLoss = 0;
            if (tp == 0) BTProfit = 0;

            bool resbuy = OrderModify (ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,StopColor);
                  if(!resbuy)
                     Print(sy," OpenPosition. OrderModify Buy fail #",GetLastError());
                  else
                     Print(sy," OpenPosition. OrderModify Buy successfully");
            }
   }

   if (op == 1) // Открытие Sell
   {
      // Проверяем доступность свободных средств
      if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134))
            {
               Print(sy," ",ll," It is impossible to open the order Sell, not enough money.");
               return(0);
            }
      RefreshRates();

      // Открываем ордер
      int ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,Comments,MagicNumber,0,SellColor);
         if(ticketsell<0)
         Print(sy," OpenPosition. OrderSend Sell fail #",GetLastError());
         else
         Print(sy," OpenPosition. OrderSend Sell successfully");

      // Sleep (Pause);

      // Модифицируем ордер (выставляем тейкпрофит и стоплосс)
      if (sl !=0 || tp !=0)
            {
            //--- Вычисленные значения цен SL и TP должны быть нормализованы
            double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
            double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
            //--- Если входящие значения ноль то заменяем цену модификации на ноль
            if (sl == 0) SSLoss = 0;
            if (tp == 0) STProfit = 0;

            bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor);
                  if(!ressell)
                     Print(sy," OpenPosition. OrderModify Sell fail #",GetLastError());
                  else
                     Print(sy," OpenPosition. OrderModify Sell successfully");
            }
   }
return (True);
}
//End
 
Karputov Vladimir:

Eu dou gratuitamente (sem custo) lições online do Skype sobre inserção de código:)

Se eu simplesmente colar o código, sim, mas se eu escrever mais, o código desaparece.
 
Há um erro em algum lugar, ao calcular PHP & MQL, se você precisar de um montador, então ajuda.
 
GIM:
Obrigado!

Feito, se você tiver alguma dúvida sobre o código escrito, também disponível pessoalmente ou no Skype

Arquivos anexados:
GIM.mq4  9 kb
 
Sergey Gritsay:

pronto, se você tiver alguma dúvida sobre o código, e-mail ou Skype

O alerta vem com a mensagem: Sem preços. À espera de novo tique...
 
GIM:
O Alerta vem com a mensagem: Sem preço. Esperamos por um novo tique...

Eu tinha uma conta demo que funcionou bem e abri um negócio na primeira tentativa. Preciso de mais detalhes.