[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 533

 
001:

Eu não consigo entender a lógica do compilador. Eu tenho uma função. Declaro uma variável externa.

int start;

além disso, o corpo funcional

duplo B()
{

int i=0, k=OrdensHistóriaTotal();
para (i=k-1; i<=k; i++) {
se (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if(OrderType()==OP_SELL) {
if(OrderProfit()< 0) {start=1;}

}

}

}

}

O valor da variável inicial deve ser memorizado e igualado a zero quando necessário. Mas neste caso, se OrderProfit()<0 , então start=1, e se OrderProfit()> 0 , então automaticamente start=0.

não

se OrderProfit()> 0, a variável armazenará o mesmo valor

 
Tantrik:
Você pode me dizer onde encontrá-lo? Está tudo em inglês.
Se você não conseguir configurar o MetaEditor para russo, use o link Documentação
 
ilunga:

não

Se OrderProfit()> 0, o que estava na variável permanece


Aqui está a função .

//+
+
double Balans() {

int i=0, k=OrdersHistoryTotal();
for (i=k-1; i<=k; i++) {
//
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if (OrderType()==OP_SELLL) {
if(OrderProfit()<0) {start=true;}
}
}

//

}
Print(" start= ",start);
if(lots<0.01) lots=0.01;
lots=NormalizeDouble(lots,2);
return(lots); }
//+------------------------------------------------------------------+

Aqui está o registro.

16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: aberto #1 venda 0.01 GBPUSD a 2,03190 tp: 2,03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1: fechar #1 venda 0,01 GBPUSD a 2,03190 tp: 2,03100 ao preço 2,03210
16:01:36 2007.07.07.13 04:04 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: aberto #2 venda 0.01 GBPUSD a 2,02860 tp: 2,02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1: fechamento #2 venda 0,01 GBPUSD a 2,02860 tp: 2,02770 ao preço 2,02890
16:01:36 2007.07.07.16 20:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: aberto #3 venda 0.01 GBPUSD a 2,03640 tp: 2,03550 ok
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1: fechar #3 venda 0,01 GBPUSD a 2,03640 tp: 2,03550 ao preço 2,03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: aberto #4 venda 0.01 GBPUSD a 2,04880 tp: 2,04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1: fechar #4 venda 0,01 GBPUSD a 2,04880 tp: 2,04790 ao preço 2,05430
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: aberto #5 venda 0.01 GBPUSD a 2.05140 tp: 2.05050 ok
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1: fechar #5 venda 0.01 GBPUSD a 2.05140 tp: 2.0505050 ao preço 2.05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: abertura #6 venda 0.01 GBPUSD a 2.04840 tp: 2.04750 ok
16:01:36 2007.07.19 17:33 Testador: obter lucro #6 em 2.04750 (2.04760 / 2.04790)
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: aberto #7 venda 0.01 GBPUSD a 2.04810 tp: 2.04720 ok
16:01:36 2007.07.20 08:00 Bars_Trader GBPUSD,M1: fechamento #7 venda 0,01 GBPUSD a 2,04810 tp: 2,04720 ao preço 2,04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: início=1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: aberto #8 venda 0.01 GBPUSD a 2.06160 tp: 2.06070 ok
16:01:36 2007.07.25 02:12 Testador: obter lucro #8 em 2.06070 (2.06040 / 2.06070)
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: início= 0

 
001:


Aqui está a função .

//+------------------------------------------------------------------+
balões duplos()
{

int i=0, k=OrdensHistóriaTotal();
para (i=k-1; i<=k; i++) {
//------------------------------------------------------------
se (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if(OrderType()==OP_SELL) {
if(OrderProfit()<0) {start=true;}
}
}

//-----------------------------------------------------------
}
Print(" start= ",start);
if(lotes<0,01) lotes=0,01;
lotes=NormalizarDuplo(lotes,2);
devolução(lotes);
}
//+------------------------------------------------------------------+

Aqui está o registro.

16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: aberto #1 venda 0.01 GBPUSD a 2.03190 tp: 2.03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1: fechar #1 vender 0.01 GBPUSD a 2.03190 tp: 2.03100 ao preço 2.03210
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.13 16:04 Bars_Trader GBPUSD,M1: aberto #2 venda 0.01 GBPUSD a 2.02860 tp: 2.02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1: fechar #2 vender 0.01 GBPUSD a 2.02860 tp: 2.02770 ao preço 2.02890
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: aberto #3 venda 0.01 GBPUSD a 2.03640 tp: 2.03550 ok
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1: fechar #3 vender 0.01 GBPUSD a 2.03640 tp: 2.03550 ao preço 2.03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: aberto #4 venda 0.01 GBPUSD a 2.04880 tp: 2.04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1: fechar #4 vender 0.01 GBPUSD a 2.04880 tp: 2.04790 ao preço 2.05430
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: aberto #5 venda 0.01 GBPUSD a 2.05140 tp: 2.05050 ok
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1: fechar #5 vender 0.01 GBPUSD a 2.05140 tp: 2.05050 ao preço 2.05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: aberto #6 venda 0.01 GBPUSD a 2.04840 tp: 2.04750 ok
16:01:36 2007.07.19 17:33 Testador: obter lucro #6 em 2.04750 (2.04760 / 2.04790)
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: aberto #7 venda 0.01 GBPUSD a 2.04810 tp: 2.04720 ok
16:01:36 2007.07.20 08:00 Bars_Trader GBPUSD,M1: fechar #7 vender 0.01 GBPUSD a 2.04810 tp: 2.04720 ao preço 2.04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: início= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: aberto #8 venda 0.01 GBPUSD a 2.06160 tp: 2.06070 ok
16:01:36 2007.07.25 02:12 Testador: obter lucro #8 a 2.06070 (2.06040 / 2.06070)
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: início= 0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: início= 0

Mostrar o código mais detalhadamente. Por exemplo, neste momento você não pode ver onde esta variável é declarada.

 
ilunga:

mostrar o código mais completamente. Por exemplo, neste momento você não pode ver onde esta variável é declarada.


TF int. externo;
TP int. externo;
externo int BARS;
Barreira Externa Intra-Minute;
Int. externo Passo=0;
//--------
duplo exterior ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ;
Dupla Diminuição Externa=2;
espera externa interna=2;
repetidas externas internas;
externo int int MA_Sell;
externamente int int int Aplicado_Preço_Venda;
//externa int MAPeriod_1;
//externa int Calc=8;
Lotes duplos externos=5;
//----
estática int PrevTime=0;
lotes duplos;
int esperar, começar, passo, repetir;
data/hora de aberturaTempo=0;
lote duplo=0,1;
 
sergovan 26.01.2012 07:27 | banido | eliminar

Olá, você pode me dizer como mudar os pedidos OP_ BUYSTOP e OP_SELLSTOP no meu EA para OP_SELLLIMIT e OP_BUYLIMIT? Eu tentei e meus pedidos de BUYLIMIT são feitos, mas os de SELLLIMIT nem pensam assim, talvez eu esteja fazendo algo errado?


Arquivos anexos:
Expertd10.mq4 (5.82 KB) apagar
 

Olá amigos, vocês podem me ajudar com este problema?

Estou escrevendo um Consultor Especialista com software stoploss, o esquema básico do algoritmo é o seguinte:


int start()
{double x, PreProfit, TekProfit;
for (x=0; x<1; x++) //The For loop operator (in theory) should be executed 1 time
{PreviousProfit=(-20);}// Atribuir 1 time value (in theory)!

TextProfit=OrderProfit();//findicar o lucro da ordem selecionada
se (PredPreviousProfit<TekProfit)//se o lucro atual for maior que o anterior, então...
{WeakProfit=TekProfit;}// Atribua à variável PredCompetitive um novo valor!
//então, a variável PredCompanyProfit deve ter o maior valor de lucro de todos os tempos!
}


O senão é que o valor da variável "x" é zerado com um novo tick e o valor (-20) é atribuído à variável "PredPreCompetition" com cada novo tick! Assim, todo o sentido do algoritmo é perdido! A variável "PreProfit" foi projetada para manter constantemente o valor máximo de lucro do pedido até que este valor seja "resetado" no fechamento do pedido.

Qual é o erro? Talvez existam outras soluções para este problema? Sou muito grato de antemão!

 
bis:

O senão é que o valor da variável "x" com um novo tick é zerado e a atribuição do valor (-20) para a variável "PredPreprofit" é feita a cada novo tick! Assim, todo o sentido do algoritmo é perdido! A variável "PrevProfit" foi projetada para manter o valor de lucro máximo da ordem permanentemente até o "reset" forçado deste valor quando a ordem for fechada.

Qual é o erro? Talvez existam outras soluções para este problema? Obrigado de antemão!

Ver https://docs.mql4.com/ru/basis/variables/static
 
FAQ:
sergovan 26.01.2012 07:27 | banido | eliminar

Olá, você pode me dizer como mudar as ordens OP_ BUYSTOP e OP_SELLSTOP no meu EA para OP_SELLLIMIT e OP_BUYLIMIT? Eu tentei mudar as ordens BUYLIMIT mas SELLLIMIT nem pensa assim, talvez eu esteja fazendo algo errado?


Expertd10.mq4 (5.82 KB) Excluir


Você não esqueceu do Bid and Ask quando você o mudou?
 

Quem sabe como tornar visível um indicador padrão no testador de estratégia?