Tomei o código para contabilidade, abertura e fechamento de ordens do tutorial (tradingexpert.mq4). O código é destinado a trabalhar com uma posição. Preciso ter cinco posições.
Modificamos ligeiramente o código da seguinte maneira (alteramos as linhas em negrito), para que as posições sejam abertas na quantidade certa, mas quando invertemos, apenas uma posição é fechada e a posição invertida é aberta imediatamente.
Como posso fazer para que todas as posições sejam fechadas na inversão e depois apenas a posição oposta seja aberta?
// Учёт ордеров
Symb=Symbol(); // Название фин.инстр.
Total=0; // Количество ордеровfor(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:if (OrderSymbol()!=Symb)continue; // Не наш фин. инструмif (OrderType()>1) // Попался отложенный
{
Alert("Обнаружен отложенный ордер. Эксперт не работает.");
return; // Выход из start()
}
Total++; // Счётчик рыночн. ордif (Total>5) // Было не более одного орд, стало не более пяти
{
Alert("Несколько рыночных ордеров. Эксперт не работает.");
return; // Выход из start()
}
Ticket=OrderTicket(); // Номер выбранн. орд.
Tip =OrderType(); // Тип выбранного орд.
Price =OrderOpenPrice(); // Цена выбранн. орд.
SL =OrderStopLoss(); // SL выбранного орд.
TP =OrderTakeProfit(); // TP выбранного орд.
Lot =OrderLots(); // Количество лотов
}
}
// Открытие ордеровwhile(true) // Цикл закрытия орд.
{
if (Total < 5 && Opn_B==true) // Открытых орд. нет +. Было Total < 1, стало Total < 5
{ // критерий откр. BuyRefreshRates(); // Обновление данных
SL=Bid - New_Stop(StopLoss)*Point; // Вычисление SL откр.
TP=Bid + New_Stop(TakeProfit)*Point; // Вычисление TP откр.Alert("Попытка открыть Buy. Ожидание ответа..");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buyif (Ticket > 0) // Получилось :)
{
Alert ("Открыт ордер Buy ",Ticket);
return; // Выход из start()
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
// Закрытие ордеровwhile(true) // Цикл закрытия орд.
{
if (Tip==0 && Cls_B==true) // Открыт ордер Buy..
{ //и есть критерий закрAlert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
RefreshRates(); // Обновление данных
Ans=OrderClose(Ticket,Lot,Bid,2); // Закрытие Buyif (Ans==true) // Получилось :)
{
Alert ("Закрыт ордер Buy ",Ticket);
break; // Выход из цикла закр
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
Tomei o código para contabilidade, abertura e fechamento de ordens do tutorial (tradingexpert.mq4). O código é destinado a trabalhar com uma posição. Preciso ter cinco posições.
Modificamos ligeiramente o código da seguinte forma (alteramos as linhas em negrito), para que as posições sejam abertas na quantidade certa, mas quando invertemos, apenas uma posição é fechada e a posição invertida é aberta imediatamente.
Como posso fazer para que todas as posições sejam fechadas na inversão e depois apenas a posição oposta seja aberta?
Faça do Ticket uma matriz Ticket[5], armazene todos os 5 tickets nele. Ao fechar, percorrer todas as passagens de acordo.
Você não pode ser considerado um iniciante pelo nível de utilização das bibliotecas. Tendo analisado seu código, levaria duas semanas para descobri-lo. Se não mais. Portanto, acho que você não terá uma resposta.
Vitya, não há necessidade de entender nada - o homem quer tornar as variáveis globais de uma "caixa de areia" (EA com suas bibliotecas) visíveis na outra "caixa de areia" (biblioteca compilada). :)))
Não sou um progamador, sou um construtor de códigos. Por isso, construí este indicador (vejo que você pode fazer uma exposição de texto, não um arquivo t - isso é o que farei para facilitar a compreensão.
Mostra a soma de pontos e a dinâmica de sua soma durante a semana - em prazos menores, se o movimento anterior continuar de Close[i+2] para Close[i+1] o movimento atual Close[i] é adicionado, se contra - é subtraído. Eu deveria prescrevê-lo para que o programa veja a sexta-feira fechada - em vez de fechar o bar -. Sei que pode ser feito com DayOfWeek e 5 (número de sexta-feira), mas como posso fazer isso na prática? Ajuda.
TarasBY: Vitya, nada precisa ser resolvido aqui - a pessoa quer que as variáveis globais de uma caixa de areia (EA com suas bibliotecas) sejam visíveis em outra caixa de areia (biblioteca compilada). :)))
Igor, um pouco errado! Na "caixa de areia" (biblioteca compilada) somente as funções e todas as variáveis são declaradas no inluder. E as variáveis que são declaradas na inluder (incluir arquivo) devem ser visíveis na coruja, porque eu inseri a inluder diretamente na coruja. Você não está de acordo?
Não sou um progamador, sou um construtor de códigos. Por isso, construí este indicador (vejo que você pode fazer uma exposição de texto, não um arquivo t - isso é o que farei para facilitar a compreensão.
Mostra a soma de pontos e a dinâmica de sua soma durante a semana - em prazos menores, se o movimento anterior continuar de Close[i+2] para Close[i+1] o movimento atual Close[i] é adicionado, se contra - é subtraído. Eu deveria prescrevê-lo para que o programa veja a sexta-feira fechada - em vez de fechar o bar -. Sei que pode ser feito com DayOfWeek e 5 (número de sexta-feira), mas como fazer isso praticamente? Ajuda.
Igor, um pouco errado! Somente as funções estão na caixa de areia (biblioteca compilada), e todas as variáveis são declaradas no inluder. E as variáveis que são declaradas na inluder (incluir arquivo) devem ser visíveis na coruja, porque eu inseri a inluder diretamente na coruja. Você não concorda?
então o que a referência à biblioteca compilada tem a ver com ela?
Não, não explica. Vou explicar - seu fórum é como uma esperança para o último reduto competente de prog. e inserção de tamanho - é assim que a redação PERÍODO_W1 o vê, mas nem o uso de tamanho nem o uso de pontos de referência fixos como datas obtêm qualquer efeito desejado. Eu postei uma pergunta específica sobre sexta-feira - a propósito seu código não compila porque diz 'versão' - propriedade desconhecida, então se você não sabe como colocar DayOfWeek e 5 (número de sexta-feira) no código, outras opções não ajudarão .
Vitek2010: Não, não explica. Vou explicar - seu fórum é como uma esperança para o último reduto competente de prog. e inserção de tamanho - é assim que a redação PERÍODO_W1 o vê, mas nem o uso de tamanho nem o uso de dados fixos como datas obtêm qualquer efeito desejado. Eu postei uma pergunta específica sobre sexta-feira - a propósito seu código não compila porque diz 'versão' - propriedade desconhecida, então se você não sabe como colocar DayOfWeek e 5 (número de sexta-feira) no código, outras opções não ajudarão .
TimeDayOfWeek(Time[i]) não especifica o Tempo[i] mas uma data específica no formato D'2014.01.27'.
E se você precisar determinar que dia é hoje, basta ligar para DayOfWeek().
Querida, preciso de ajuda.
Tomei o código para contabilidade, abertura e fechamento de ordens do tutorial (tradingexpert.mq4). O código é destinado a trabalhar com uma posição. Preciso ter cinco posições.
Modificamos ligeiramente o código da seguinte maneira (alteramos as linhas em negrito), para que as posições sejam abertas na quantidade certa, mas quando invertemos, apenas uma posição é fechada e a posição invertida é aberta imediatamente.
Como posso fazer para que todas as posições sejam fechadas na inversão e depois apenas a posição oposta seja aberta?
Querida, preciso de ajuda.
Tomei o código para contabilidade, abertura e fechamento de ordens do tutorial (tradingexpert.mq4). O código é destinado a trabalhar com uma posição. Preciso ter cinco posições.
Modificamos ligeiramente o código da seguinte forma (alteramos as linhas em negrito), para que as posições sejam abertas na quantidade certa, mas quando invertemos, apenas uma posição é fechada e a posição invertida é aberta imediatamente.
Como posso fazer para que todas as posições sejam fechadas na inversão e depois apenas a posição oposta seja aberta?
Você não pode ser considerado um iniciante pelo nível de utilização das bibliotecas. Tendo analisado seu código, levaria duas semanas para descobri-lo. Se não mais. Portanto, acho que você não terá uma resposta.
Não sou um progamador, sou um construtor de códigos. Por isso, construí este indicador (vejo que você pode fazer uma exposição de texto, não um arquivo t - isso é o que farei para facilitar a compreensão.
Mostra a soma de pontos e a dinâmica de sua soma durante a semana - em prazos menores, se o movimento anterior continuar de Close[i+2] para Close[i+1] o movimento atual Close[i] é adicionado, se contra - é subtraído. Eu deveria prescrevê-lo para que o programa veja a sexta-feira fechada - em vez de fechar o bar -. Sei que pode ser feito com DayOfWeek e 5 (número de sexta-feira), mas como posso fazer isso na prática? Ajuda.
Vitya, nada precisa ser resolvido aqui - a pessoa quer que as variáveis globais de uma caixa de areia (EA com suas bibliotecas) sejam visíveis em outra caixa de areia (biblioteca compilada). :)))
Igor, um pouco errado! Na "caixa de areia" (biblioteca compilada) somente as funções e todas as variáveis são declaradas no inluder. E as variáveis que são declaradas na inluder (incluir arquivo) devem ser visíveis na coruja, porque eu inseri a inluder diretamente na coruja. Você não está de acordo?
Não sou um progamador, sou um construtor de códigos. Por isso, construí este indicador (vejo que você pode fazer uma exposição de texto, não um arquivo t - isso é o que farei para facilitar a compreensão.
Mostra a soma de pontos e a dinâmica de sua soma durante a semana - em prazos menores, se o movimento anterior continuar de Close[i+2] para Close[i+1] o movimento atual Close[i] é adicionado, se contra - é subtraído. Eu deveria prescrevê-lo para que o programa veja a sexta-feira fechada - em vez de fechar o bar -. Sei que pode ser feito com DayOfWeek e 5 (número de sexta-feira), mas como fazer isso praticamente? Ajuda.
Será que vai servir?
Igor, um pouco errado! Somente as funções estão na caixa de areia (biblioteca compilada), e todas as variáveis são declaradas no inluder. E as variáveis que são declaradas na inluder (incluir arquivo) devem ser visíveis na coruja, porque eu inseri a inluder diretamente na coruja. Você não concorda?
Está tudo bem?
Não, não explica. Vou explicar - seu fórum é como uma esperança para o último reduto competente de prog. e inserção de tamanho - é assim que a redação PERÍODO_W1 o vê, mas nem o uso de tamanho nem o uso de dados fixos como datas obtêm qualquer efeito desejado. Eu postei uma pergunta específica sobre sexta-feira - a propósito seu código não compila porque diz 'versão' - propriedade desconhecida, então se você não sabe como colocar DayOfWeek e 5 (número de sexta-feira) no código, outras opções não ajudarão .
TimeDayOfWeek(Time[i]) não especifica o Tempo[i] mas uma data específica no formato D'2014.01.27'.
E se você precisar determinar que dia é hoje, basta ligar para DayOfWeek().
Em TimeDayOfWeek(Time[i]) você não define a hora[i] mas uma data específica no formato D'2014.01.27'.
Se você quiser determinar que dia é hoje, basta ligar para DayOfWeek().