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

 
sergeev писал(а) >>

fazer dele um Expert em vez de um script e controlar o tempo de execução do código de função do script no Expert. Chegou o momento - executar o código do roteiro.

Entendi por esta frase que seus terminais estão fechados. Estou lhe respondendo - o roteiro não pode executar o terminal em si.

Ao escrevê-lo, é assim que é entendido. Se não é isto que você quer dizer, então explique-se mais claramente.

Qual é o valor da idéia? Se você precisasse tanto assim, não teria tido um proger montado há muito tempo... é para você pessoalmente.

1. Copie o conteúdo do roteiro.

2. Criar um novo EA usando MetaEditor

3. Insira o código do roteiro

4. Como adicionar a função de trabalhar por tempo e onde inseri-lo (não sou programador)

Eu preciso do tempo de trabalho da função de 9-00 a 9-01

O código do roteiro a ser editado: (Obrigado antecipadamente a todos que ajudarão)

#direitos de propriedade intelectual "Kim Igor V. aka KimIV"
#link da propriedade "https://www.mql5.com/go?link=http://www.kimiv.ru/"
#property show_inputs

#importar "kernel32.dll
int GetUserDefaultLCID();
int GetLocaleInfoA(
int Locale, // identificador locale
tipo LCT, // tipo de informação
string lpLCData, // endereço do buffer para informação
int cchData // tamanho do buffer
);
#importar

//+------ Parâmetros externos do roteiro -------------------------------------------+
bool externo bComissão = Falso; //Discharge commissions
bool externo bSwap = True; // Descarregar swaps
bComentario externo = Verdadeiro; // Descarregar comentários
bool bMagic = True; // Descarregar MagicNumber

// Constantes LCTYPE
#define LOCALE_SDECIMAL 0x000E // Caracteres utilizados para o separador decimal.

//+----------------------------------------------------------------------------+
//| função de início do programa de script |
//+----------------------------------------------------------------------------+
início nulo() {
int dg, i, k=OrdersHistoryTotal();
string FileName=DoubleToStr(AccountNumber(), 0)+".csv"; st;

FileDelete(FileName);
st="Ticket;Open Time;Type;Lots;Item;Price;SL;TP;Close Time;Price";
if (bComissão) st=st+";Comissão";
if (bSwap) st=st+";Swap";
st=st+";Lucro"; se (bSwap) st=st+";Lucro;
if (bMagic) st=st+";Magic";
if (bComment) st=st+";Comment";
WritingLineInFile(FileName, st);
para (i=0; i<k; i++) {
se (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
se (OrderType()<2) {
dg= MarketInfo(OrderSymbol(), MODE_DIGITS);
st= DoubleToStr(OrderTicket(), 0)+";";
st=st+TimeToStr(OrderOpenTime(), TIME_DATE|TIME_MINUTES)+";";";
st=st+GetNameOP(OrderType())+";";
st=st+DoubleToStrLocale(OrderLots(), 2)+";";
st=st+OrderSymbol()+";";
st=st+DoubleToStrLocale(OrderOpenPrice(), dg)+";";
st=st+DoubleToStrLocale(OrderStopLoss(), dg)+";";
st=st+DoubleToStrLocale(OrderTakeProfit(), dg)+";";
st=st+TimeToStr(OrderCloseTime(), TIME_DATE|TIME_MINUTES)+";";";
st=st+DoubleToStrLocale(OrderClosePrice(), dg)+";";
if (bCommission) st=st+DoubleToStrLocale(OrderComission(), 2)+";";
if (bSwap) st=st+DoubleToStrLocale(OrderSwap(), 2)+";";
st=st+DoubleToStrLocale(OrderProfit(), 2)+";";
if (bMagic) st=st+DoubleToStr(OrderMagicNumber(), 0)+";";
if (bComment) st=st+OrderComment()+";";
WritingLineInFile(FileName, st);
}
Comentário ("Leia: ",i+1," de ",k);
}
}
Comentário("Arquivo escrito: ",FileName);
}

//+----------------------------------------------------------------------------+
//| Converte um valor numérico em um fio com o sistema |
//| separador entre parte inteira e parte fracionária |
//| Parâmetros: |
//|| v - número do tipo duplo |
//| d - número de dígitos após a vírgula decimal |
//+----------------------------------------------------------------------------+
string DoubleToStrLocale(double v, int d) {
se (d<0) d=0;
se (d>8) d=8;

string se=GetUserLocale(LOCALE_SDECIMAL), st=DoubleToStr(v, d);
if (se!=".") st=StrTran(st, ".", se);

retorno(st);
}

//+----------------------------------------------------------------------------+
//| Nome de retorno da operação comercial |
//| Parâmetros: |
//| op - identificador de operação comercial |
//+----------------------------------------------------------------------------+
string GetNameOP(int op) {
interruptor (op) {
caso OP_BUY : retornar("Comprar");
caso OP_SELL : devolução("Vender");
caso OP_BUYLIMIT : devolução("Buy Limit");
caso OP_SELLLIMIT : devolução("Sell Limit");
caso OP_BUYSTOP : devolução("Buy Stop");
caso OP_SELLSTOP : devolução("Sell Stop");
default : devolução ("Operação Desconhecida");
}
}

//+----------------------------------------------------------------------------+
//| Retorno das configurações regionais do usuário |
//| Parâmetros: |
//| LCType - tipo de cenário regional (LCTYPE Constant) |
//+----------------------------------------------------------------------------+
string GetUserLocale(int LCType) {
int loc=GetUserDefaultLCID();
string str=" ";

GetLocaleInfoA(loc, LCType, str, 64);

retorno(str);
}

//+----------------------------------------------------------------------------+
//| Substrato substituto |
//| Parâmetros: |
//| str - string de texto, em que a substituição é feita |
//| strfrom - substrato a ser substituído |
//| strto - substituindo o substrato |
//+----------------------------------------------------------------------------+
string StrTran(string string, string strfrom, string strto) {
int, s.f;
string outstr="", tempstr;

para (n=0; n<StringLen(str); n+++) {
tempstr=StringSubstr(str, n, StringLen(strfrom));
se (tempstr==strfrom) {
outstr=outtr+strto;
n=n+StringLen(strfrom)-1;
} else outstr=outstr+StringSubstring(str, n, 1);
}
retorno(outstr);
}

//+----------------------------------------------------------------------------+
//| Escrever cadeia para arquivo |
//| Parâmetros: |
//| FileName - nome do arquivo |||
//| texto - string |||
//+----------------------------------------------------------------------------+
void WritingLineInFile(string FileName, string text) {
int file_handle=FileOpen(FileName, FILE_READ|FILE_WRITE, " ");

se (file_handle>0) {
FileSeek(file_handle, 0, SEEK_END);
FileWrite(file_handle, texto);
FileClose(file_handle);
}
}
//+----------------------------------------------------------------------------+

 
Olá, você poderia me dizer qual pasta colocar as fontes no MT4?
 
%windir% fonts
 

para baltik


string NeedTime="9:00";
datetime time0=0;

//----------------------------------------------------------------------------
void start() 
{

 if ( time0>=StrToTime( NeedTime)) return; // если сегодня уже выполняли код
 if (TimeCurrent()<=StrToTime( NeedTime)) return; // если требуемое время ещё не наступио
 time0=TimeCurrent(); // иначе запоминаем время

// и делаем то что надо

// бла бла бла остальной код

Este tópico é para pessoas que estão aprendendo a programar, não para pessoas que estão pedindo que você escreva para elas.

 
sergeev >>:
%windir% \ fonts

Você consegue manter as coisas simples, não entendo... que tipo de pasta é? ou o que é afinal?

 
chepikds >>:

можно как-то попроще, я ничего не понял... это что за папка? или что это вообще такое?


Na verdade, a questão "qual pasta colocar fontes no MT4" também não está muito clara. Por favor, explique em russo. :)

As fontes não são armazenadas no terminal. As fontes são manipuladas pelo sistema operacional.

 
sergeev >>:

вообще-то вопрос "в какую папку вставить шрифты в МТ4" тоже не очень понятен.

в терминале никакие шрифты не хранятся. шрифтами занимается операционная система.

Vou tentar colocá-lo no sistema operacional...

 
Obrigado Sergeev ,está funcionando.
 
sergeev писал(а) >>

para baltik

Este tópico é para pessoas que estão aprendendo a programar, não para pessoas que estão pedindo que você escreva para elas.

Obrigado

Vou aprender :)

 

olá. escrevi uma simples EA, usando exemplos do tutorial. a EA deve sinalizar quando o preço sair da faixa, que consiste em dois MAs. ou seja, se uma barra abriu na faixa e começou a subir e seu preço atual saiu dela, então ela apita. o mesmo vale para baixo. mas o problema é que eu não consigo descobrir se eu fizer isso

if (Licitação > MA1 || Licitação < MA2) // Verificando o passe de faixa
{
Alerta("Preço está fora da faixa");// Mensagem
}

Se o preço estiver acima da faixa, então o Expert Advisor sinaliza:

if (Bid > MA1 && Fact_Up==verdadeiro) // Verifique se há um passe para cima
{
Fact_Dn=verdadeiro; // Informe o preço acima de MA1
Fact_Up=falso; // Não informe o preço abaixo de MA1
Alert("O preço está acima do intervalo.");// Mensagem
}
//
if (Bid < MA2 && Fact_Dn===verdadeiro) // Verifique o passe para baixo
{
Fact_Up=verdadeiro; // Informe o preço abaixo de MA2
Fact_Dn=falso; // Não informe o preço acima de MA2
Alerta ("Preço está abaixo do intervalo");// Mensagem
}

Se esta mensagem for mostrada, então não é nada clara, quando dá um sinal - às vezes dá um sinal, às vezes não.

Não consigo entender o que é o "Fact_Up==verdadeiro" e por que é necessário.