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
Controlar os limites da matriz especificando uma string no código é muito útil. Costumava ser: dividir por zero, e olhar onde você quiser. E é ainda pior se o erro não apareceu.
Você poderia dar um exemplo de como fazer isso? Não encontrei nada sobre este recurso na documentação.
Exatamente! Você não precisa fazer nada agora. Abra a aba "especialistas" e leia os logs. Se aparecer um erro, você verá uma mensagem sobre isso. Como:
matriz fora do intervalo....... indicando o número da linha no código.
Abra a aba 'especialistas' e leia os logs.
Tente mudar o caso da primeira letra do nome do roteiro/indicador. Também já lutou uma vez https://www.mql5.com/ru/forum/152533/page2#982156
P.S: bem, mudar o fio para char[]
Responda, Pavlik!
Bom para você Pavlik!
Seu código funcionou imediatamente!
Agora você pode executar o
roteiro!
Falta ser encaixado no indicador!
Seu código foi inserido no indicador!
há apenas um pequeno obstáculo
indicador não quer reconhecer o nome
do roteiro. Eu escrevi o nome no local
de onde o roteiro deve ser chamado.
Tudo o que resta é que o roteiro seja
reconhecido!
você pode me ajudar?
sinceros cumprimentos
punsa
Responda, Pavlik!
Você é ótimo, Pavlik!
seu código funcionou de imediato!
agora você pode executar o
o roteiro!
Falta ser encaixado no indicador!
Seu código foi inserido no indicador!
há apenas um pequeno obstáculo
indicador não quer reconhecer o nome
do roteiro. Eu escrevi o nome no local
de onde o roteiro deve ser chamado.
Tudo o que resta é para o roteiro
reconhecido!
você pode me ajudar?
sinceros cumprimentos
Panza
Eu ajudo se você precisar
Eu o ajudarei se você precisar de alguma ajuda.
Oi, Vinin!
muito obrigado
por querer ajudar!
Estou lhe enviando para uma visão geral de como o
chamada de roteiro do compositor
pansa
____________________________________
Oi Pavlik!
Gostaria de lhe mostrar um exemplo
como a chamada do roteiro foi organizada
com o compositor, agora não está funcionando.
para revisão
pansa
//+------------------------------------------------------------------+
//|exemplo_executado_escrito.mq4 |
//+------------------------------------------------------------------+
#importar "user32.dll
int RegisterWindowMessageA(string MessageName);
int PostMessageA(int hwnd, int msg, int wparam, string Name);
void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo);
#importar
int start()
{
int winHandle = WindowHandle( Symbol(), Period() );
//
//
//
if( sinal < 0 && trigl== verdadeiro && comprar == verdadeiro ) {StartScript( winHandle, "SchliesenProfitOrders" ); }
//
//
//
void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false)
{
int MessageNumber = RegisterWindowMessageA("MetaTrader4_Internal_Message");
PostMessageA(hWnd, MessageNumber, 16, ScriptName);
se (AutomaticallyAcceptDefaults) { ClearConfigDialog(); }
}
ClearConfigDialog() vazio
{
Sleep(100);
keybd_event(13, 0, 0, 0, 0);
}
//
//
//
retorno(0);
Oi, Vinin!
muito obrigado
por querer ajudar!
Estou lhe enviando para uma visão geral de como o
chamada de roteiro do compositor
pansa
____________________________________
Oi Pavlik!
Gostaria de lhe mostrar um exemplo
como a chamada do roteiro foi organizada
com o compositor, agora não está funcionando.
para revisão
pansa
É realmente difícil clicar no SRC e colar o código?!
Isto deve funcionar bem:
E não se esqueça do caso da primeira letra do roteiro, por exemplo, se o roteiro "teste" não começar, você deve tentar "Teste".
Respeitosamente, Pavlik ))
Isto deve funcionar bem:
E não se esqueça do caso da primeira letra do roteiro, por exemplo, se o roteiro"teste" não for executado, você deve tentar "Teste".
Cumprimentos, Pavlik )))
Oi Pavlik!
Tem seu refinamento e
tentou colocar tudo no indicador
mas o indicador não quer.
veja o que você pode fazer
para que funcione!
Panza
//+------------------------------------------------------------------+
//|AltrTREND_Signal.mq4 |
//| Copyright 2014, MetaQuotes Software Corp. |
//|https://wwww.mql5.com |||||mql5.com
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|AltrTrend_Signal_v2_2_alert.mq4 |
//|Ramdass - Somente Conversão |
//+------------------------------------------------------------------+
#propriedade copyright "Autor - OlegVS, GOODMAN"
#propriedade rigorosa
#importar "user32.dll
int RegisterWindowMessageA(uchar &lParam[]);
int SendMessageA(int hWnd, int Msg, int wParam, char &lParam[]));
void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo);
#importar
#janela_do_cartão_indicador de propriedade
#property indicator_buffers 2
#indicador de propriedade_color1 DeepSkyBlue
#Indicador de propriedade_color2 OrangeRed
#largura_do_indicador de propriedade1 1
#largura_do_indicador de propriedade2 1
//---- parâmetros de entrada
bool externo Alert_message=verdadeiro;
tempo_alert_minutes=60; // ????? ????? ?????????? ???? ??? ? 60 ?????.
externo int K = 30;
Kstop duplo externo = 0,5;
período interno externo Kp = 150;
Exterior int PeriodADX = 7; //14;
Exterior int CountBars = 100;
//---- buffers
duplo val1[];
duplo val2[];
duplo AlertTime;
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado|
//+------------------------------------------------------------------+
int init()
{
nome_curto_de_filtro;
//---- linha indicadora
IndicatorBuffers(1);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,241);
IndicatorBuffers(2);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1.242);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
if(Barras Contagem>=Barras)
CountBars=Bars;
SetIndexDrawBegin(0, Barras - Barras-Contra-Barras + PeriodADX );
SetIndexDrawBegin(1, Barras - Barras-Contra-Barras + PeriodADX );
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2|
//+------------------------------------------------------------------+
int start()
{
int i, shift, counted_bars = IndicatorCounted();
//----
if(counted_bars<0) return(-1);
//----
int i1, i2, t_per;
faixa dupla, AvgRange, smin, smax, SsMax, SsMin, SSP, preço;
bool uptrend, velho;
//----
if(Bars <=PeriodoADX+ 1)
retorno(0);
//----
for(shift = CountBars - PeriodADX ; shift >= 0; shift--)
{
SSP = MathCeil(Kperiod / iADX(NULL, 0, PeriodADX , PRICE_CLOSE, MODE_MAIN, 1)));
Faixa = 0;
AvgRange = 0;
for(i1 = turno; i1 <= turno + SSP; i1++)
{
AvgRange = AvgRange + MathAbs(Alta[i1] - Baixa[i1]);
}
Alcance = AvgRange / (SSP + 1);
//----
SsMax = Alto[turno];
SsMin = Baixo[turno];
for(i2 = turno; i2 <= turno + SSP - 1; i2++)
{
preço = alto[i2];
if(SsMax < preço)
SsMax= preço;
preço = Baixo[i2];
if(SsMin >= preço)
SsMin = preço;
}
//----
smin = SsMin + (SsMax - SsMin)*K / 100;
smax = SsMax - (SsMax - SsMin)*K / 100;
val1[shift] = 0,0;
val2[shift] = 0,0;
if(Close[shift] < smin)
{
uptrend = falso;
}
if(Close[shift] > smax)
{
uptrend = true;
}
if(uptrend != velho && uptrend == verdadeiro)
{
val1[shift] = Baixo[shift] - Alcance*Kstop;
}
if(uptrend != velho && uptrend == falso)
{
val2[shift] = Alto[shift] + Alcance*Kstop;
}
antigo = tendência de alta;
}
void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false)
{
{
char buf[];
StringToCharArray("MetaTrader4_Internal_Message", buf;)
int MT4InternalMsg = RegisterWindowMessageA(buf);
StringToCharArray("fPlayer", buf);
SendMessageA(hWnd, MT4InternalMsg, 16, buf);
se (AutomaticallyAcceptDefaults) { ClearConfigDialog(); }
}
ClearConfigDialog() vazio
{
Sleep(100);
keybd_event(13, 0, 0, 0, 0);
}
//---- Alerta
if (Period()<Time_alert_minutes) t_per=Period(); else t_per=Time_alert_minutes; // ???? ??<Time_alert, ????? ????? ?????????? ???? ??? ? ??.
if (Alert_message===true && CurTime()>AlertTime && val1[0]!=0.0)
{
Alerta(Símbolo(), "++++ COMPRAR!!! +++"//AltrendTrend_Signal_v2_2_alert ");
AlertTime=CurTime() + (t_per - MathMod(TimeMinute(CurTime()), t_per))*60;
//PlaySound("payment.wav");
fPlayer ;//script
}
if (Alert_message===true && CurTime()>AlertTime && val2[0]!=0.0)
{
Alerta(Símbolo(), "+++ VENDA !!!+++"//AltrendTrend_Signal_v2_2_alert");
AlertTime=CurTime() + (t_per - MathMod(TimeMinute(CurTime()), t_per))*60;
// PlaySound("payment.wav");
fPlayer ;
}
retorno(0);
}
//+------------------------------------------------------------------+