[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 229

 
nikkola >> :

Eu não a decompus, foi assim que a consegui.

Isso não faz absolutamente nenhuma diferença.

 
estranho, ele foi embora por conta própria, mas graças ao TheXpert de qualquer forma, saberei qual é o erro
 
nikkola >> :

Eu não a decompus, foi assim que a consegui.

E em geral, especialistas deste tipo estão até mesmo neste recurso a granel e com fonte aberta. Era uma espécie de ameixa EA, trabalhada na interseção do preço e da ondulação. Eu o substituí por outro indicador, e isso é tudo. E se deparou com este problema.

 
e mais uma pergunta, alguém sabe se as citações estão disponíveis em forma de arquivo, porque estou ficando sem internet ^_^
 
nikkola >> :

Olá, ajuda por favor não pode entender... Tenho um EA que funciona em sinais osciladores, abre posições depois de cruzar zero. Quero fazê-lo abrir uma posição quando a barra de corrente tiver fechado e o sinal tiver se formado. Pode abrir e fechar uma posição algumas vezes em um minuto :) Até que o sinal se ajuste.

Aqui está o código:


Lote duplo externo = 0,1;
duplo externo Per = 14;
bool gi_84 = VERDADEIRO;
int gi_88 = 366;
duplo gd_92 = 0,02;
duplo gd_100 = 0,2;
int g_period_108 = 14;
int gi_112 = 50;
int g_slippage_116 = 0;



início nulo() {
int l_cmd_52;
int l_ticket_56;

string l_símbolo_0 = Símbolo();
double l_isar_8 = iCustom(NULL,0, "daytrend-t01",Per,0,0));
double l_isar_9 = iCustom(NULL,5, "daytrend-t01",Per,0,0));
int l_cmd_40 = -1;
int l_ord_total_44 = OrderTotal();
Lot = MathMax(Lot, MarketInfo(l_symbol_0, MODE_MINLOT));
for (int li_48 = l_ord_total_44; li_48 > 0; li_48--) {
if (OrderSelect(li_48 - 1, SELECT_BY_POS) == VERDADEIRO) {
l_cmd_52 = OrderType();
se (OrderSymbol() != l_symbol_0 || l_cmd_52 < OP_BUY || l_cmd_52 > OP_SELL) continuar;
l_ticket_56 = OrderTicket();
RefreshRates();
se (l_cmd_52 < OP_SELL) {
se (l_isar_8 > 0) {
while (OrderClose(l_ticket_56, Lot, Bid, g_slippage_116) == 0) FunError(gi_112);
l_cmd_40 = -1;
continuar;
}
{} else {
se (l_isar_8 < 0 ) {
while (OrderClose(l_ticket_56, Lot, Ask, g_slippage_116) == 0) FunError(gi_112);
l_cmd_40 = -1;
continuar;
}
}
l_cmd_40 = l_cmd_52;
}
}
if (l_cmd_40 < OP_BUY && g_period_108 === 0 || DayOfYear() < gi_88) {
RefreshRates();
if (l_isar_8 < 0 && l_isar_9 < 0 ) while (OrderSend(l_symbol_0, OP_BUY, Lot, Ask, g_slippage_116, 0, 0) == 0) FunError(gi_112);
senão
if (l_isar_8 > 0 && l_isar_9 > 0 ) while (OrderSend(l_symbol_0, OP_SELL, Lot, Bid, g_slippage_116, 0, 0) == 0) FunError(gi_112);
}
}

void FunError(int ai_0) {
Sleep(ai_0);
RefreshRates();
}

void deinit() {
}

Utilizo o seguinte código para isso:


bool Fun_New_bar()
/*
é projetado para detectar se há uma nova barra,
se a nova barra for pega "verdadeira" ou "falsa".
===========
Variáveis:
===========
Tempo_Teste - Tempo de teste
*/
{
data/hora estática Teste_Tempo=0;
if(Test_Time!=Time[0])
{
Test_Time=Time[0];
retorno(true);
}
retorno(falso);
}


Para minha pergunta, por favor, me ajude se eu sei ou me diga se é impossível fazê-lo... estou procurando uma resposta para 3 dias e ainda não tive sorte. :-(

 
betmen >> :

Para minha pergunta, por favor, ajude quem sabe ou me diga se é impossível fazê-lo... Estou procurando uma resposta há 3 dias e até agora em vão. :-(

A IU personalizada é usada para personalizar as configurações. Ou seja, uma janela que foi especialmente desenvolvida para uma tarefa específica (para indicadores específicos). Não há possibilidade de criar tais janelas em Metatrader. Isto significa que eles têm que ser criados em outro lugar, com um arquivo executável. O arquivo executável pode ser Exe ou Dll. Dll pode ser chamado no início de um indicador/escrito, é claramente mais conveniente.

 
jartmailru >> :

A IU personalizada é usada para definir os parâmetros. Isto é, uma janela especialmente projetada para uma tarefa específica (para indicadores específicos). Não há possibilidade de criar tais janelas em Metatrader. Isto significa que eles têm que ser criados em outro lugar, com um arquivo executável. O arquivo executável pode ser Exe ou Dll. Você pode chamar o Dll no início do indicador/script, ele é mais confortável.

Obrigado!!!

Se você quiser compartilhar o artigo onde ele é descrito, ficarei muito grato a você... :-)

 
betmen >> :

Obrigado!!!

A questão é como configurar a interface entre objetos na "forma principal" e variáveis na MQL4, se você compartilhar comigo alguns links para artigos sobre isso, eu simplesmente explodirei com gratidão... :-)

Bem, minha impressão é que é melhor ignorar o Dll,

mostrar modalmente pode ser perigoso (é um indicador no fio da IU, você pode ter conseqüências) -.

ou talvez não... Em geral, o formulário pode ser executado em um ambiente separado - com a Wtl tudo ficou ótimo.

O indicador aguardará por uma bandeira que lhe seja permitida para trabalhar e interrogará este formulário.

E então - quando o formulário se mostra pronto - há diferentes funções como get(int & to[]), com apontadores/referências,

que transferirá dados diferentes. Com cordas, pode haver problemas...

E você compartilhará comigo o link para o artigo ;-).

 
jartmailru >> :

Bem, tenho a impressão de que é melhor ignorar o Dll,

mostrar que pode ser perigoso (está no fio da UI, você pode ter conseqüências) -

ou talvez não... Em geral, o formulário pode ser executado em um ambiente separado - com a Wtl tudo ficou ótimo.

O indicador esperará por uma bandeira que lhe seja permitida para trabalhar e interrogará este formulário.

E então - quando o formulário se mostra pronto - há diferentes funções como get(int & to[]), com apontadores/referências,

que transferirá dados diferentes. Com cordas, pode haver problemas...

Você pode compartilhar comigo o link para o artigo ;-).

A questão era como os indicadores padrão desenham uma nova guia "Parâmetros" ao selecionar as configurações da própria operação do indicador, com a possibilidade de substituir os números por algo mais legível.

Por exemplo, se você chamar o MA:


no código do indicador é a variável "MA_Método" e a seleção do método vai pela condição


switch(MA_Método)
{
caso 1 : short_name="EMA("; draw_begin=0; break;
caso 2 : short_name="SMMA("; pausa;
caso 3 : short_name="LWMA("; pausa;
padrão :
MA_Método=0;
short_name="SMA(";


Você sugere a execução de um exe compilado de outro ambiente durante a inicialização, é realmente possível executar um arquivo exe durante a inicialização, mas então há outro problema - como passar dados do programa para variáveis do próprio indicador?

ou seja, como passar um valor de combobox1.text convertido em um número para MA_Method?

Não é estético através de um arquivo e não há espaço de memória comum como MetaTrader e "test.exe" criado por mim.

 
Rita писал(а) >>

Obrigado. Vou tentar agora.

//------------------------------------------

Sim, funcionou. Os especialistas estão trabalhando.

E não funcionou para mim :-( Ainda estou recebendo a desculpa do erro e fechando o MT

Razão: