Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 149

 

Boa tarde.

Você pode me dizer como encontrar a barra certa por data e hora, sem passar por todas as barras uma a uma?

 
Sergey:

Boa tarde.

Você pode me dizer como encontrar a barra certa por data e hora, sem passar por todas as barras uma a uma?


Leia sobre o iBarShift
 

int TotalPos=-1;

início nulo()

{
// o resto do código

//--
if(OrdersTotal()!=TotalPos) { // não torturar cada carrapato
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
História();


}
}}} TotalPos=OrdensTotal(); // lembrar quantidade
//--
}



Histórico nulo() {
string Ticket=(string)OrderTicket();
color col=Red;
if(OrderType()==0)col=Blue;
datatime a=OrderOpenTime();
duplo b=OrdemOpenPrice();
datetime c=OrderCloseTime();
duplo d=OrderClosePrice();
duplo prSep=OrderProfit()+OrderComission()+OrderSwap();
duplo prAll=0;
int cn=0;
hTicket de corda;
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
datetime ct=OrderCloseTime();
// Diferença de 60 segundos entre o fechamento da primeira e última ordem na grade
if(c<=ct+60 && c>=ct-60) {
prAll+=OrderProfit()+OrderComission()+OrderSwap();
hTicket=(string)OrderTicket();
cn++;
}
}}}
ObjectCreate(Ticket+"Open",OBJ_ARROW,0,a,b);
ObjectSet(Ticket+"Open",OBJPROP_COLOR,col);
ObjectSet(Ticket+"Open",OBJPROP_ARROWCODE,1);

ObjectCreate(Ticket+"Line",OBJ_TREND,0,a,b,c,d);
ObjectSet(Ticket+"Line",OBJPROP_COLOR,col);
ObjectSet(Ticket+"Line",OBJPROP_WIDTH,1);
ObjectSet(Ticket+"Line",OBJPROP_STYLE,STYLE_DOT);
ObjectSet(Ticket+"Line",OBJPROP_RAY,0);

ObjectCreate(Ticket+"Close",OBJ_ARROW,0,c,d);
ObjectSet(Ticket+"Close",OBJPROP_COLOR,Verde);
ObjectSet(Ticket+"Close",OBJPROP_ARROWCODE,3);

Ticket=cn>1?hTicket:Ticket;
ObjectCreate(Ticket+"Profit",OBJ_TEXT,0,c,d);
ObjectSet(Ticket+"Profit",OBJPROP_ANCHOR,0);
ObjectSetText(Ticket+"Profit",DoubleToString(prAll,2),10, "Arial",White);
ObjectSet(Ticket+"Profit",OBJPROP_PRICE1,d);
ObjectSet(Ticket+"Profit",OBJPROP_TIME1,c+Period()*60*2);
}

o que acrescentar ao código desta função para traçar uma linha de nível nestes locais de comércio

coordenar desde os ofícios até a borda do gráfico offset

 

Por favor, ajude na leitura de um arquivo .crv

arquivo tem a seguinte entrada :

2010.03.18 01:35:00;1.37409;1.37119

como escrever o código para obter cada valor separadamente em uma variável

 
missha32:

Por favor, ajude na leitura de um arquivo .crv

arquivo tem a seguinte entrada :

2010.03.18 01:35:00;1.37409;1.37119

como escrever o código para obter cada valor separadamente em uma variável

Leia/estude aqui.
Основы программирования на MQL5: Файлы
Основы программирования на MQL5: Файлы
  • 2016.09.28
  • Dmitry Fedoseev
  • www.mql5.com
Статья-практикум по работе с файлами в MQL5. Читайте, выполняйте несложные задания, и к концу статьи вы обретете не только теоретические знания, но и практические навыки по работе с файлами в MQL5.
 
Alexander Antoshkin:

int TotalPos=-1;

início nulo()

{
// o resto do código

//--
if(OrdersTotal()!=TotalPos) { // não torturar cada carrapato
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
História();


}
}}} TotalPos=OrdensTotal(); // lembrar quantidade
//--
}



Histórico nulo() {
string Ticket=(string)OrderTicket();
color col=Red;
if(OrderType()==0)col=Blue;
datatime a=OrderOpenTime();
duplo b=OrdemOpenPrice();
datetime c=OrderCloseTime();
duplo d=OrderClosePrice();
duplo prSep=OrderProfit()+OrderComission()+OrderSwap();
duplo prAll=0;
int cn=0;
hTicket de corda;
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
datetime ct=OrderCloseTime();
// Diferença de 60 segundos entre o fechamento da primeira e última ordem na grade
if(c<=ct+60 && c>=ct-60) {
prAll+=OrderProfit()+OrderComission()+OrderSwap();
hTicket=(string)OrderTicket();
cn++;
}
}}}
ObjectCreate(Ticket+"Open",OBJ_ARROW,0,a,b);
ObjectSet(Ticket+"Open",OBJPROP_COLOR,col);
ObjectSet(Ticket+"Open",OBJPROP_ARROWCODE,1);

ObjectCreate(Ticket+"Line",OBJ_TREND,0,a,b,c,d);
ObjectSet(Ticket+"Line",OBJPROP_COLOR,col);
ObjectSet(Ticket+"Line",OBJPROP_WIDTH,1);
ObjectSet(Ticket+"Line",OBJPROP_STYLE,STYLE_DOT);
ObjectSet(Ticket+"Line",OBJPROP_RAY,0);

ObjectCreate(Ticket+"Close",OBJ_ARROW,0,c,d);
ObjectSet(Ticket+"Close",OBJPROP_COLOR,Verde);
ObjectSet(Ticket+"Close",OBJPROP_ARROWCODE,3);

Ticket=cn>1?hTicket:Ticket;
ObjectCreate(Ticket+"Profit",OBJ_TEXT,0,c,d);
ObjectSet(Ticket+"Profit",OBJPROP_ANCHOR,0);
ObjectSetText(Ticket+"Profit",DoubleToString(prAll,2),10, "Arial",White);
ObjectSet(Ticket+"Profit",OBJPROP_PRICE1,d);
ObjectSet(Ticket+"Profit",OBJPROP_TIME1,c+Period()*60*2);
}

o que acrescentar ao código desta função para traçar uma linha de nível nestes locais de comércio

coordenar desde os ofícios até a borda do gráfico offset

algo como isto :

string level="Level"+IntegerToString(iTime(_Symbol,iBarShift(OrderCloseTime())); // ид.уровня - по времени бара (!! не по тикету)

if (ObjectFind(level)‌==-1) {

  // гор.вектора нет - видимо первый ордер из закрытых на баре

  // сделать горизонтальную линию‌

  ObjectCreate(0,level,OBJ_TREND,0,OrderCloseTime(),OrderClosePrice(),OrderCloseTime()+PeriodSeconds(_Period)*3,OrderClosePrice);

 // указывающую только вправо‌

  ObjectSetInteger(level,‌OBJPROP_RAY,1);

  ObjectSetInteger(level,OBJPROP_RAYLEFT,0);

‌ // украсить её как-то :-)

 ObjectSetInteger(level,OBJPROP_‌COLOR,....)

 ....‌

} else {

  // гор.уровень есть - значит были ордера закрытые на этом баре

  // по фантазии - обновить метки/корректировать уровень/etc‌

}‌

 

Boa tarde!

Quais são as razões para o terminal não ver um robô? ele foi escrito por um programador local. Os outros robôs são em parte visíveis e em parte não.

 
Serg_72:

Boa tarde!

Quais são as razões para o terminal não ver um robô? ele foi escrito por um programador local. Os outros robôs são em parte visíveis e em parte não.

E o "programador local" não pode lhe dizer por que você não pode executar o robô dele?
 

Boa noite!

Por favor, ajude-me a escrever este código, sinto que não posso fazê-lo eu mesmo:

Quando executo um EA em EURUSD, devo colocar duas ordens pendentes se não tiver nenhuma ordem em aberto/pendente sobre este par,

Se uma delas for acionada, outra não será mostrada, ou seja, a soma total de todas as ordens pendentes no par não deve exceder 2 e não deve levar em conta ordens pendentes/abertas já mostradas em outros pares.

Eu já estou com o cérebro pesado, ele não coloca nada, depois coloca cada carrapato.

Estou muito agradecido por isso.

Ficarei muito grato por isso.

 
Serg_72:

Boa tarde!

Quais são as razões para o terminal não ver um robô? ele foi escrito por um programador local. Os outros robôs são em parte visíveis e em parte não.

O robô deve estar localizado na pasta "experts" e estar na forma de *.ex4 (*.ex5 para 5).
No terminal - menu "File/Open Data Folder" e depois "MQL4/Experts".

E o código-fonte *.mq4 *.mq5 não será iniciado - ele precisa ser compilado.

E enquanto isso, arrancar a cabeça do programador que não lhe disse como usar seu produto