[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 189

 

Eu aprendia o básico da programação (25 anos atrás - Algol 60 :)) Naquele tempo, tudo começou com a criação de um algoritmo (quadrados, losangos), e então este algoritmo foi descrito com uma linguagem. Agora eu não vejo nenhum algoritmo ou comando.

Vocês têm alguma recomendação para bons tutoriais sobre o mql4? De preferência com exemplos concretos de escrita especializada, começando com o algoritmo.

 
v721965 писал(а) >>

Eu aprendia o básico da programação (25 anos atrás - Algol 60 :)) Naquele tempo, tudo começou com a criação de um algoritmo (quadrados, losangos), e então este algoritmo foi descrito com uma linguagem. Agora eu não vejo nenhum algoritmo ou comando.

Vocês têm alguma recomendação para bons tutoriais sobre o mql4? De preferência com exemplos específicos de escrita de EA, a partir do algoritmo.

https://book.mql4.com/ru/

 
alvish >> :
pro favor aconselhar, de acordo com a ajuda da linguagem mql5 não há função iHighest como calcular a altura máxima para o período N? ... Eu tentei copyHigh e fmax, mas apenas por um certo período e não a ajuda, é claro

Aqui está um exemplo:

         int shift_Box_Start = iBarShift(NULL, 0, TimeBoxStart);
         Box_Start_High      = High[iHighest(NULL, 0, MODE_HIGH, shift_Box_Start- i, i+1)];
         Box_Start_Low       =  Low[iLowest(NULL,  0, MODE_LOW,  shift_Box_Start- i, i+1)];

Certifique-se apenas de acertar os shifters.

 

1. Tentando executar a EA em modo de teste com visualização. A EA é simples: ela gera uma mensagem através de Alert. Quando o Alert está no init, a mensagem é dada no início. Quando está no início, a EA não reage a um novo tique. Qual é o problema?

2. No mesmo modo de teste, também inicio um roteiro, que exibe os valores de Tempo[1], Fechar[1],... (para referência). Descobri que estes valores são baseados no tempo atual (real) e não no tempo de recebimento de carrapatos e formação de barras no gráfico. O que pode ser feito?

 
Roger писал(а) >>

Para EURGBP ele retorna - 0 (que é Alpari) curto e -0,68 longo e isso é exatamente em dólares.

Para Alpari, o tipo de cálculo swap é 0 e o meu é 1,

No entanto, preciso conhecer todos os tipos de cálculos.

Eu tentei todas as combinações: multiplicação, divisão ou nenhuma multiplicação.

Aqui está o código que calcula tudo isso e retorna mais próximo do valor de swap real.

int a,b,c,d,dd;

dd=1;

double raznica;

for ( j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {

int a_=0,b_=0,c_=0,d_=0;

raznica=1000000;

OrderSelect(j, SELECT_BY_POS, MODE_HISTORY);

if(OrderSwap()!=0){

if(OrderType()==OP_BUY){

for(a=-dd;a<=dd;a++){

for(b=-dd;b<=dd;b++){

for(c=-dd;c<=dd;c++){

for(d=-dd;d<=dd;d++){

double gg=MathPow(MarketInfo(OrderSymbol(),MODE_SWAPLONG),a)*MathPow(OrderLots(),b)*MathPow(MarketInfo(OrderSymbol(),MODE_TICKVALUE),c)*MathPow(MarketInfo(OrderSymbol(),MODE_BID),d);

if(MathAbs(gg-OrderSwap())<raznica){raznica=MathAbs(gg-OrderSwap());a_=a;b_=b;c_=c;}

}}}}

Alert(" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+"РАСЧЕТНЫЙ СВОП = "+gg+"\n a= "+a_+" b = "+b_+" c = "+c_+" d = "+d_);

}//if(OrderType()==OP_BUY){

if(OrderType()==OP_SELL){

for(a=-dd;a<=dd;a++){

for(b=-dd;b<=dd;b++){

for(c=-dd;c<=dd;c++){

for(d=-dd;d<=dd;d++){

gg=MathPow(MarketInfo(OrderSymbol(),MODE_SWAPSHORT),a)*MathPow(OrderLots(),b)*MathPow(MarketInfo(OrderSymbol(),MODE_TICKVALUE),c)*MathPow(MarketInfo(OrderSymbol(),MODE_BID),d);

if(MathAbs(gg-OrderSwap())<raznica){raznica=MathAbs(gg-OrderSwap());a_=a;b_=b;c_=c;}

}}}}

Alert(" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+"РАСЧЕТНЫЙ СВОП = "+gg+"\n a= "+a_+" b = "+b_+" c = "+c_+" d = "+d_);

}//if(OrderType()==OP_SELL){

}//if(OrderSwap()!=0){

}//for ( j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {

Não obtive resultados nem para a Alpari nem para a BROCO.

Isto é

MarketInfo(OrderSymbol(),MODE_SWAPLONG)

OrderLots()

MarketInfo(OrderSymbol(),MODE_TICKVALUE)

MarketInfo(OrderSymbol(),MODE_BID)

Não o suficiente para o cálculo da troca.

Deve haver algo mais, mas o que é isso?

 
Obrigado chefe2000, mas você escreveu através do padrão iHighest e iLowest, esse é o problema, e eles não estão no mql 5
 
alvish >> :
Obrigado chefe2000, mas você escreveu através do padrão iHighest e iLowest, esse é o problema com o mql 5.

Agora vejo que não li a pergunta com atenção.

Eu realmente tenho que descrever tudo manualmente na versão 5? Algo não está bem aqui - talvez haja um problema com a documentação?

 
bem ali
 
vasya_vasya >> :

Para Alpari, o tipo de cálculo swap é 0 e o meu é 1,


Vasya, por que você está se incomodando? Eu lhe disse aqui 'Troca em mql4' muito brevemente

posso entrar em detalhes,

há 4 variantes no total

cada um com uma fórmula diferente.

 
kaisa писал(а) >>

Vasya, por que você está se incomodando? Eu lhe disse aqui brevemente: "Troca em mql4".

Posso entrar em mais detalhes, se você precisar,

há 4 variantes no total

para cada uma uma fórmula diferente

sim, posso ter as outras fórmulas?