Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 509
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
Pessoal, digam-me um robô. Um que usa martin.
Por exemplo, abro uma ordem e o robô continua trabalhando...
Pessoal, digam-me um robô. Um que usa martin.
Por exemplo, abro uma ordem e o robô continua trabalhando...
Olá. Estou tentando descobrir como funcionam os eventos. NÃO trabalhei o evento de apagar um objeto do gráfico(CHARTEVENT_OBJECT_DELETE). Removido tanto com o mouse quanto através da Lista de Objetos. Construir 600.
Por favor, diga-me o que está errado?
Eu uso código de ajuda
#define KEY_NUMPAD_5 12
#define KEY_LEFT 37
#define KEY_UP 38
#define KEY_RIGHT 39
#define KEY_DOWN 40
#define KEY_NUMLOCK_DOWN 98
#define KEY_NUMLOCK_LEFT 100
#define KEY_NUMLOCK_5 101
#define KEY_NUMLOCK_RIGHT 102
#define KEY_NUMLOCK_UP 104
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
Print("Запущен эксперт с именем ",MQLInfoString(MQL_PROGRAM_NAME));
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, // идентификатор события
const long& lparam, // параметр события типа long
const double& dparam, // параметр события типа double
const string& sparam) // параметр события типа string
{
//--- нажатие левой кнопкой мышки на графике
if(id==CHARTEVENT_CLICK)
{
Print("Координаты щелчка мышки на графике: x = ",lparam," y = ",dparam);
}
//--- нажатие мышкой на графическом объекте
if(id==CHARTEVENT_OBJECT_CLICK)
{
Print("Нажатие кнопки мышки на объекте с именем '"+sparam+"'");
}
//--- нажатие кнопки на клавиатуре
if(id==CHARTEVENT_KEYDOWN)
{
switch(int(lparam))
{
case KEY_NUMLOCK_LEFT: Print("Нажата KEY_NUMLOCK_LEFT"); break;
case KEY_LEFT: Print("Нажата KEY_LEFT"); break;
case KEY_NUMLOCK_UP: Print("Нажата KEY_NUMLOCK_UP"); break;
case KEY_UP: Print("Нажата KEY_UP"); break;
case KEY_NUMLOCK_RIGHT: Print("Нажата KEY_NUMLOCK_RIGHT"); break;
case KEY_RIGHT: Print("Нажата KEY_RIGHT"); break;
case KEY_NUMLOCK_DOWN: Print("Нажата KEY_NUMLOCK_DOWN"); break;
case KEY_DOWN: Print("Нажата KEY_DOWN"); break;
case KEY_NUMPAD_5: Print("Нажата KEY_NUMPAD_5"); break;
case KEY_NUMLOCK_5: Print("Нажата KEY_NUMLOCK_5"); break;
default: Print("Нажата какая-то неперечисленная клавиша");
}
ChartRedraw();
}
//--- удален объект
if(id==CHARTEVENT_OBJECT_DELETE)
{
Print("Удален объект с именем ",sparam);
}
//--- создан объект
if(id==CHARTEVENT_OBJECT_CREATE)
{
Print("Создан объект с именем ",sparam);
}
//--- перемещен объект или изменены координаты точек привязки
if(id==CHARTEVENT_OBJECT_DRAG)
{
Print("Изменение точек привязки объекта с именем ",sparam);
}
//--- изменен текст в поле ввода графического объекта Edit
if(id==CHARTEVENT_OBJECT_ENDEDIT)
{
Print("Изменен текст в объекте Edit ",sparam);
}
}
Caros membros do fórum, ajudem-me a entender, eu sou a vela atual, porque i-2 não quer traçar uma linha, o testador pára quando está correndo.
Caros membros do fórum, ajude-me a entender, eu sou a vela atual, porque i-2 não quer traçar uma linha, o testador pára quando está correndo.
Se você estiver tentando desenhar uma linha 2 velas antes do i, então você precisa adicionar 2, não subtrair, porque a numeração das velas vai da direita para a esquerda, barra 0-corrente.
Se você tentar traçar linhas em uma barra que ainda não existe (-2), o índice da matriz não pode ser negativo. Para isso, calcular o tempo da barra necessária, por exemplo, Tempo[0]+2*(Tempo[0]-Tempo[1])
Se você estiver tentando desenhar uma linha 2 velas à frente da i-ésima vela, então você precisa adicionar 2, não subtrair, porque a numeração das velas vai da direita para a esquerda, barra 0-corrente.
Se você tentar traçar linhas em uma barra que ainda não existe (-2), o índice da matriz não pode ser negativo. Para fazer isso, você precisa calcular o tempo da barra que deseja, por exemplo, Tempo[0]+2*(Tempo[0]-Tempo[1])
Muito obrigado, a linha deveria ter sido traçada em uma barra que não existe (-2)
Muito obrigado, a linha deveria ter sido traçada em uma barra que não existe (-2)
Por que outro motivo haveria um preço. Afinal de contas, o objeto é baseado no tempo.
Muito obrigado, a linha deveria ter sido construída sobre uma barra (-2) que não existe
Por favor
Aqui está outra "bela" solução
Time[0]+Period()*60*2 //60 переводим в секунды, 2 кол-во баров
Pessoal, ajudem-me a começar. Necessidade de abrir um pedido.
input int TakeProfit = 30;
input double StartLot = 0.01;
input double summ=false; //true, открываем позиции в обе стороны
input int Slippage = 30; // установим значение проскальзывания
void OnTick()
{
if(summ) { // открываем однупозицию, покупка.
OrderSend(
Symbol(),
OP_BUY,
StartLot,
NormalizeDouble(NormalizeDouble(Ask,_Digits),_Digits),
Slippage,
0,
TakeProfit,
WindowExpertName()+" "+(string)0,
0,
0,
clrBlue
);
}else{
OrderSend(
Symbol(),
OP_BUY,
StartLot,
NormalizeDouble(NormalizeDouble(Ask,_Digits),_Digits),
Slippage,
0,
TakeProfit,
WindowExpertName()+" "+(string)0,
0,
0,
clrBlue
);
OrderSend(
Symbol(),
OP_SELL,
StartLot,
NormalizeDouble(NormalizeDouble(Bid,_Digits),_Digits),
Slippage,
0,
TakeProfit,
WindowExpertName()+" "+(string)0,
0,
0,
clrBlue
);
}
}
Não está funcionando, o que está errado?
Escreva um código que apenas abrirá uma posição. Isso é tudo o que é preciso...
Pessoal, ajudem-me a começar. Necessidade de abrir um pedido.
Não está funcionando, o que está errado?
Escreva um código que apenas abrirá uma posição. Isto é tudo o que você precisa...
TakeProfit não é especificado corretamente na apresentação do pedido. Você deve especificar o preço, não o número de nano-pips de lucro. Correto para Ask+TakeProfit*Point()
Ask, Bid não precisa ser normalizado
OrderSend(
Symbol(),
OP_BUY,
StartLot,
Ask,
Slippage,
0,
Ask+TakeProfit*Point(),
WindowExpertName()+" "+(string)0,
0,
0,
clrBlue
);