[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 224

 

Quero que uma mensagem seja exibida após o fechamento de um stop loss, mas nada acontece no mt4.

int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
string sy="NULL";
int op=-1;
int mn=-1;
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
datetime t;
double ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal();

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
ocp=NormalizeDouble(OrderClosePrice(), dg);
osl=NormalizeDouble(OrderStopLoss(), dg);
if (ocp==osl) return(True);
}
return(False);
}
int start()
{
//----
bool stopl;
stopl = isCloseLastPosByStop(sy,op,mn);
if (stopl == true)
Alert ("последняя сделка закрылась по s/l");
//----
return(0);
}

Arquivos anexados:
33.mq4  3 kb
 
é desconfortável ler este código, todo o texto está cinzento...)
 
 

Prezados membros do fórum, estou colocando o indicador "Balance Chart" para revisão. Penso que seria útil em uma janela separada - um controle visual sobre as mudanças em seu próprio equilíbrio em tempo real, controle da rentabilidade do Expert Advisor no final... O problema é que não funciona... Eu mesmo o "consertei", não o entendo muito bem. Eu desenvolvi alguns indicadores, mas não fiz nada com ele... Eu ficaria grato por uma correção. Escrevi o que eu queria obter. Por favor, não hesite em mastigá-los, nem que seja apenas o resultado! Talvez outra pessoa venha a precisar, parece que a coisa não é supérflua...

Arquivos anexados:
 
você tem 1 equilíbrio em todas as barras?) por que você precisa dele
 
eddy:
você tem 1 equilíbrio em todas as barras?

Talvez não tenha declarado o problema com precisão - talvez fosse mais preciso
AccountEquity( )

inserir. Mas essa é a segunda. E, o mais importante, gostaria de observar estas mudanças após as posições de abertura/fecho.

Seria algo como uma linha de equilíbrio como no testador, mas no real?

 
kulon:

Talvez eu não tenha declarado o problema com precisão - talvez seja mais preciso
AccountEquity( )
inserir. Mas esta é a segunda. E o mais importante, gostaria de observar estas mudanças após as posições de abertura/encerramento.


Você precisa ler o histórico comercial e ler o saldo no momento em que a próxima posição foi fechada.

A equidade é um pouco mais complicada, mas pode ser feita exatamente da mesma forma.

Você pode converter todos os cálculos para um lote padrão ou contar em pips

 

Pergunta com janela...

Inseri # linha de indicador de propriedade_separarate_window no indicador padrão - depois disso o MT4 não quer anexá-lo a uma ferramenta financeira. Por quê?

 
100yan:

Pergunta com janela...

Inseri # linha de indicador de propriedade_separarate_window no indicador padrão - depois disso o MT4 não quer anexá-lo a uma ferramenta financeira. Por quê?


Talvez os valores sejam muito pequenos e estejam em algum lugar no fundo (fora da janela)
 
Vinin:

Talvez os valores sejam apenas muito pequenos e estejam em algum lugar no fundo (fora da janela)


Mas em teoria deveria haver uma janela separada, embora vazia?

Também - nem o indicador nem o assessor.... anexam

 
100yan:

Pergunta com janela...

Inseri # linha de indicador de propriedade_separarate_window no indicador padrão - depois disso o MT4 não quer anexá-lo a uma ferramenta financeira. Por quê?

Dê uma olhada nosanálogos. Em particular Equity_simple.mq4
Razão: