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

 
chief2000 >>:

Я экспортировал CSV-файл (1 мин с 1999 года) из МТ одного брокера. Попытался импортировать в МТ другого брокера - 1 минутки получил

без проблем, с 1999. Но вот что-то не пойму как во 2-м МТ получить 5, 15-мин и т.д. графики? - Т.е. после импортирования 1 минуток переключился на

5 минутный график и похоже МТ пытается докачать их из интернета, вместо конвертирования их из уже имеющихся 1-минуток.

Перегружал МТ - не помогло.

- Есть какое-нибудь нормальное решение для конвертирования 1 МИН в более высокие таймфреймы?

Bem, é claro que haverá download, então por que deveria haver alguma conversão da ata.

Você pode pegar o CSV original e executar um programa auto-escrito para obter todos os prazos padrão nos arquivos de saída e importá-los.

 

Olá a todos!

Não há como implementar um algoritmo simples:

Após uma compra/venda, um pedido é fechado após 2 barras.

Não consigo pensar em nada melhor do que um timer, mas o timer está ligado a um período de tempo e eu preciso dele depois de n barras.

 

Olá novamente e novamente uma pergunta que eu mesmo não posso responder.

Estou escrevendo um consultor especializado para praticar a colocação de pedidos quando uma condição aparece. A tarefa é simples: negociar apenas uma posição. Se o preço estiver acima de МА10, eu comprarei; se estiver abaixo, venderei. Quero testar a possibilidade de usar mágicos de pedidos para que o Expert Advisor feche exatamente aqueles pedidos que ele mesmo fez. Há também a segunda variante das condições de compra e venda (ainda não as acrescentei). E deve determinar por si só a que condição a ordem pertence - o número mágico é estabelecido na função que desencadeia a abertura de uma posição. Da mesma forma, de acordo com as condições, logo no início deve determinar se existe ou não uma posição e, em seguida, procurar condições de Compra ou Venda.


Aqui está o código:


// Мувинг и цена
double MA10;
double Price;
// Есть или нет позиция и ее номер
int Pos;
int Magic;
double Lot=0.1;
double SL;
double TP;
int Slippage=3;

//--------------------------------------------------------------------

void start()
{
MA10 = iMA(NULL,0,10,0,0,0,0);
Price = Bid;

CheckPos();
}

//--------------------------------------------------------------------

void CheckPos()
{
if(Pos==0)
CheckBuy();
CheckSell();
}

//--------------------------------------------------------------------
// Поиск условий для покупки и продажи
//--------------------------------------------------------------------

void CheckBuy()
{
if (NormalizeDouble(Price,Digits) > NormalizeDouble(MA10,Digits))
Magic=10;
Buy();
return;
}

//--------------------------------------------------------------------

void CheckSell()
{
if (NormalizeDouble(Price,Digits) < NormalizeDouble(MA10,Digits))
Sell();
return;
}

//--------------------------------------------------------------------
// Выставление ордеров
//--------------------------------------------------------------------

void Buy()
{
string Symb=Symbol();
Pos=1;

OrderSend(Symb, OP_BUY, Lot, Ask, Slippage, SL, TP, NULL, Magic);
return;
}
//--------------------------------------------------------------------

void Sell()
{
Pos=0;
OrderClose(Magic, Lot, Bid, Slippage);
return;
}


E este código, apesar do fato de que deve negociar apenas uma posição (sim, devemos procurar condições de venda, não, devemos procurar condições de compra), abre um grande número de posições e depois não as fecha. Minha cabeça já está quebrada. Você pode me dizer o que está errado?

 
sigma7i >>:

Всем привет!

Простой алгоритм никак не могу реализовать:

После покупки/продажи закрытие ордера через 2 бара.

Кроме таймера ничего лучше придумать не могу, но у таймера есть привязка к тайм фрейму, а мне необходимо через n баров.


Percorra as ordens abertas, veja quando elas foram abertas e compare com a hora atual, duas barras passaram e feche-as.
 
splxgf >>:

Ну естественно будет происходить докачка, с чего вдруг она должна происходить конвертация из минуток.

Можно взять исходный CSV и прогнать самописной прогой для получения на выходе в файлах всех стандартных таймфремов и импортировать их.

Parece que o confundi com o MT5 - parece que são gerados prazos mais altos a partir de períodos de 1 minuto, enquanto no MT4 é a mesma forma antiquada.

 
Vinin >>:

Скрипт в CodeBase лежит, так и называется период конвертор

Obrigado!

 

O conversor de período é bom para gráficos, mas você não pode alimentá-lo para um testador.

Oops, vendo como funciona, ele escreve um arquivo de histórico recodificado. https://www.mql5.com/ru/code/8560

 

И вот он, зараза, несмотря на то, что должен торговать только одной позицией (есть - ищем условия на продажу, нет - ищем условия на покупку), открывает большое количество позиций, и потом их не закрывает. Я уже голову поломал. Подскажите, что не так?

no CheckBuy adicionar uma ordem de abertura maior que zero, e depois sair.

 
splxgf >>:

в CheckBuy добавь иф опен ордерс больше нуля, то выходим.

Sim, vou acrescentar agora. Obrigado (risos)

Mas ainda assim, por que ele compra muitas posições em primeiro lugar? Afinal de contas, no início é-lhe dito imediatamente que se existe uma posição - você não vai aqui, você vai lá? Como minha idéia, ele não deveria sequer entrar neste pedaço de código. Ou talvez eu não entenda?

 
Jahspear >>:

Ага, щас добавлю. Спасибо.

Но всё-таки - почему он вообще покупает мого позиций? Ведь вначале ему сразу говорится, что если позиция есть - ты сюда не ходи, ты туда ходи? Он, по задумке, в этот кусок кода даже попадать не должен. Или я что не понимаю?


Embora eu tenha olhado o código mais de perto agora, é difícil entendê-lo sem meio litro, vou enviar-lhe meu e-mail e tentar explicar o que fiz lá.