Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 679
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Estou a escrever um robô, ligando o Ctrade, primeiro quero usar a lógica, segundo a qual no início de cada hora fará um negócio de compra a preço de mercado, após meia hora venderá tudo (Sell) a um novo preço de mercado. Quando o testo no testador, recebo erro Tipo de ordem inválido.
O meu instrumento é a SBER, o meu cliente é a Otkritie. A minha encomenda está em modo manual, a minha encomenda não é passada em conta real ou de demonstração.
Qual poderá ser o erro? É verdade que a bolsa de valores não está autorizada a negociar ao preço do mercado?
Estou a escrever um robô, ligando o Ctrade, primeiro quero começar com uma lógica onde fará um negócio de compra ao preço de mercado no início de cada hora, após meia hora venderá tudo a um novo preço de mercado. Quando o testo no testador, recebo erro Tipo de ordem inválido.
O meu instrumento é a SBER, o meu cliente é a Otkritie. A minha encomenda está em modo manual, a minha encomenda não é passada em conta real ou de demonstração.
Qual poderá ser o erro? É verdade que a bolsa de valores não está autorizada a negociar ao preço do mercado?
Boa tarde. Se a EA estiver a funcionar num portátil e tiver entrado em modo de hibernação, a EA ligada irá funcionar neste caso?
E incluirá a impressão no registo de quaisquer valores e descobrirá. Se não se imprime, não funciona.
Bom dia. Se a EA está a funcionar num portátil e adormeceu, a EA ligada funcionará, neste caso?
O modo de hibernação é normalmente o que desliga a unidade,
Instalei recentemente um servidor, e apenas no dia 3 vi que o computador estava a dormir, ou seja, não estava a funcionar, ou seja, todos os EAs não estavam a funcionar,
Desactivei o modo de hibernação e tudo está bem.
Isso é claro ...estava a pensar se alguém poderia partilhar a sua experiência com um novato.
Olá. Se o conselheiro estiver a funcionar num portátil e este estiver em modo de hibernação, o conselheiro ligado irá trabalhar neste caso ?
Não. Não vai funcionar. Nas definições de potência, definir a fonte de alimentação:
Sem o seu código, é difícil compreender o que escreveu e porque não funciona.
//| Gear.mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include <Trade/Trade.mqh>
CTrade trade;
bool TimeFlag, FLG;
int TimeScale=50, TimeInMemory, TimeNow;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---Блок получения информации с биржи
MqlTick oCurrentTick;
SymbolInfoTick(Symbol(), oCurrentTick);
//---Блок определения начала нового временного интервала
TimeFlag=false;
datetime tm=TimeCurrent();
MqlDateTime stm;
TimeToStruct(tm,stm);
if(MathMod(StringToInteger((string)stm.min),TimeScale)==0)
{
TimeNow=StringToInteger((string)stm.min);
}
if(TimeNow != TimeInMemory)
{
TimeInMemory=TimeNow;
TimeFlag=true;
//Print(_Symbol);
}
if(TimeFlag)
{
if(FLG)
{
if(!trade.Buy(1,_Symbol))
{
//--- сообщим о неудаче
Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
". Описание кода: ",trade.ResultRetcodeDescription());
}
else
{
Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
FLG=false;
}
else
{
trade.Sell(1);
FLG=true;
}
}
}
//+------------------------------------------------------------------+
Esta não é a forma de o fazer:
int TimeScale=50,TimeInMemory,TimeNow;
ou antes, após tal declaração, deve rubricar explicitamente(atribuir valores a) estas variáveis no OnInit().
O método de venda também deve ser rodeado de controlos, tais como
" (",trade.ResultRetcodeDescription(),")");
E também pode haver uma captura - de manhã, na abertura da negociação, o leilão não começa imediatamente, não a partir do primeiro segundo - é aí que os erros são possíveis.