Entendi. Muito obrigado. É uma boa opção, mas não posso testar o sistema com dados históricos. Portanto, eu queria prescrevê-lo automaticamente de alguma forma. Se você tiver qualquer outra sugestão, por favor me avise.
Para testes sobre o histórico, devemos determinar a condição de fechamento. Lucro/perda ou duração da posição, por exemplo, não mais do que 3 dias. Isto pode ser feito modificando a data de expiração de um pedido/posição usando OrderModify.
paladin80: Para testá-lo na história, temos de determinar a condição de fechamento da posição. Lucro/perda ou duração da posição, por exemplo, não mais do que 3 dias. Isto pode ser feito modificando a data de expiração do pedido/posição usando OrderModify.
Sim, acontece que teremos uma condição próxima - é a vida útil da posição, tudo bem, não mais do que 3 dias. Eu li sobre a OrderModify, mas ainda não entendi. Vou tentar fazer isso à noite. Muito obrigado novamente por sua resposta, muito rápida:)
Desculpe, não está no idioma, mas eu realmente preciso saber se alguém sabe.
No Windows 7, alguns arquivos se recusam a abrir. Aperto "Abrir com...", seleciono um programa e ele NÃO aparece na lista de seleção de programas. Alguém sabe como remover esta restrição? Não o tinha na XP. A merda dos setes está me matando :(
Suspeito que o registro precisa ser limpo. Especificamente, não posso clicar duas vezes no formato FB2. CoolReader run e tudo está bem. abre. clique duas vezes para executar o formato de arquivo fb2 não quer.
Executa uma busca de registro Utillitoy JV-16 (sempre a usou) - bem, encontrou tantas entradas de registro que mencionam fb2, apenas horror - mesmo com medo de matar. O que fazer? Uma busca no google não rendeu nada :(
Ajude-me a refazer o código. O código não é novo, mas algo não está funcionando para mim.
Aqui está o código:
*///-----------------Закрытие по истории в безубыток--------------------//---------------------расчет по истории ордеров номера очередной итерации-----------------------------------------------
Iteration = 0; // зануляем инерации перед их учетом в цикле по истории
Sum_Loss = 0; // суммарный убыток по этим итерациямdatetime
Time_at_History_Current = 0,
Time_at_History_Previos = 0;
if(OrdersHistoryTotal() != 0)
{
for(int counter = OrdersHistoryTotal()-1; counter >= 0; counter--)
{
OrderSelect(counter, SELECT_BY_POS, MODE_HISTORY);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
if(OrderType() == OP_BUY || OrderType() == OP_SELL)
{
if(OrderProfit() < 0) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера// для последующего его анализа при подсчете количества итераций
{
double lastLoss = OrderProfit();
Sum_Loss=Sum_Loss+lastLoss; // считаем общий убыток по закрытым подряд убыточным ордерам
Time_at_History_Current = OrderCloseTime();
}
//Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS));//Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));if(Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными
{
Time_at_History_Previos = Time_at_History_Current ;
Iteration++;
//Print("Iteration at History в условии сравнения = ", Iteration);
}
else// они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла
{
if(OrderProfit() >= 0)
break;
}
}
}
}
}
if (Sum_Loss < 0.0) { // Имеем убыток по закрытым позамif (((AccountEquity() + Sum_Loss + (Sum_Loss * 0.25)) >= AccountBalance()) && (((totalSell > 0) && (totalBuy < 1)) || ((totalSell < 1) && (totalBuy > 0)))) { // Достигли безубытка// Здесь какой-то код, который необходимо выполнить при достижении безубытка
CloseAllBuy();
CloseAllSell();
Sum_Loss = 0.0;
}
}
//-----------------------------------------------------------------
Eu tentei ao máximo abrir um loop quando uma troca menos é feita e depois de uma troca positiva, se eu tivesse uma troca menos, eu diminuiria meu saldo menos pelo lucro da última ordem fechada, que é maior que zero. Isto é, se a ordem fechou em menos, começamos a trabalhar, se a transação seguinte com lucro é mais que uma perda, fechamos, se na transação seguinte fechamos em mais, mas este mais não é mais que um menos, nas ordens anteriores, este mais de um saldo negativo, e a ordem seguinte comparamos com novos indicadores que já são menos, como antes fechamos em menos. É por isso que temos um equilíbrio positivo.
Desculpe, não está no idioma, mas eu realmente preciso dele, se alguém souber.
No Windows 7, alguns arquivos se recusam a abrir. Aperto "Abrir com...", seleciono um programa e ele NÃO aparece na lista de seleção de programas. Alguém sabe como remover esta restrição? Não o tinha na XP. A merda dos setes está me matando :(
Suspeito que o registro precisa ser limpo. Especificamente, não posso clicar duas vezes no formato FB2. CoolReader run e tudo está bem. abre. clique duas vezes para executar o formato de arquivo fb2 não quer.
Executa uma busca de registro Utillitoy JV-16 (sempre a usou) - bem, encontrou tantas entradas de registro que mencionam fb2, apenas horror - mesmo com medo de matar. O que fazer? Uma busca no google não rendeu nada :(
Iniciar - Todos os programas - Programas padrão - Definir mapeamentos
Desculpe, não está no idioma, mas eu realmente preciso saber se alguém sabe.
No Windows 7, alguns arquivos se recusam a abrir. Aperto "Abrir com...", seleciono um programa e ele NÃO aparece na lista de seleção de programas. Alguém sabe como remover esta restrição? Não o tinha na XP. A merda dos setes está me matando :(
Suspeito que o registro precisa ser limpo. Especificamente, não posso clicar duas vezes no formato FB2. CoolReader run e tudo está bem. abre. clique duas vezes para executar o formato de arquivo fb2 não quer.
Executa uma busca de registro Utillitoy JV-16 (sempre a usou) - bem, encontrou tantas entradas de registro que mencionam fb2, apenas horror - mesmo com medo de matar. O que fazer? Uma busca no google não rendeu nada :(
A essência da estratégia: Entrada por estocástico (5,14,3) saída também por estocástico, mas com outro período (5,3,3). Eu não entendo como fazer uma saída por estocástico e não por sinal inverso. Eu tenho um problema e não tenho idéia de como ele pode ser resolvido, vou tentar explicar. Portanto, no código, que publiquei, há 2 funções //+ + //| prepare array of tickets to close | //+ + void PrepareTicketsToClose(int signal, bool Invers, int & ticketsClose[][2], double & lots[],double arrayTickets[][9]) { int size=ArrayRange(arrayTickets,0); // if (size==0) return;
int i,type,ticket,closeSize; for (i=0;i<size;i++) { type=arrayTickets[i][1]; // se o tipo de ordem não for uma ordem de mercado, então pule if (type>OP_SELL) continue;
if (Reverte) // inverter o tipo de ordem de mercado { if (type===OP_BUY) type=OP_SELL; else type=OP_BUY; } // aqui decidimos para cada pedido aberto seu destino // deixá-lo no mercado ou adicioná-lo ao array no fechamento if (type===OP_BUY) { // // código permitindo deixar a compra
// como exemplo if (signal====OP_BUY) continuar; }
se (type===OP_SELL) { // //code permitindo continuar vendendo
//as um exemplo se (signal===OP_SELL) continuar; }
closeSize=ArrayRange(ticketsFechar,0); ArrayResize(ticketsFechar,fecharTamanho+1); ArrayResize(ticketsFechar,fecharTamanho+1); ticketsFechar[fecharTamanho][0] = arrayTickets[i][0]; // ticket # ticketsFechar[closeSize][1] = arrayTickets[i][1] // tipo de pedido
// aqui especificamos quantos lotes fechar lotes[closeSize] = arrayTickets[i][2]; // volume a ser fechado // é possível fechar parcialmente, então a linha acima deve ser reescrita } // retorno; }
//+ + //| Encerra pedidos com bilhetes especificados | //+ + void CloseMarketOrders(int ticketsArray[][2], double lotsArray[]) { // int i,size=ArrayRange(ticketsArray,0); if (size==0) return;
int ticket,type; double lots; bool res;
int total=OrdensTotal();
for (i=0;i<size;i+++) { ticket = ticketsArray[i][0]; type = ticketsArray[i][1]; lots = lotsArray[i]; RefreshRates(); // just in case the market environment is updated
// purchase close block if (type===OP_BUY) { res = OrderClose(ticket,lots,Bid,Slippage,Orange); if (!res) { Print("Failed to close order to buy #",ticket","! Erro #",GetLastError()); // mais manipulação de erros, escreva você mesmo } } }
// bloco de fechamento de vendas if (type===OP_SELL) { res = OrderClose(ticket,lots,Ask,Slippage,Orange); if (!res) { Print("Failed to close sell order #",ticket,"! Erro #",GetLastError()); // mais manipulação de erros, escreva-se } }
} //
retorno; }
O vazio PrepareTicketsToClose(int signal, bool Invers, int & ticketsClose[][2], double & lots[], double arrayTickets[][9]) precisa passar uma condição para decidir se a ordem deve ser fechada ou não... Eu tentei colocar condições, mas nada funciona.... Alguém pode olhar e ver se há um erro nestas funções ou eu fiz asneira....
Restaurar as exassociações não ajudou - o leitor de lã é um ex-relator. Pensei que isso ajudaria. É uma pena. Existe algo mais? Eles têm um link para outras extensões de arquivo lá, mas não tem fb2.
Entendi. Muito obrigado. É uma boa opção, mas não posso testar o sistema com dados históricos. Portanto, eu queria prescrevê-lo automaticamente de alguma forma. Se você tiver qualquer outra sugestão, por favor me avise.
Para testá-lo na história, temos de determinar a condição de fechamento da posição. Lucro/perda ou duração da posição, por exemplo, não mais do que 3 dias. Isto pode ser feito modificando a data de expiração do pedido/posição usando OrderModify.
Sim, acontece que teremos uma condição próxima - é a vida útil da posição, tudo bem, não mais do que 3 dias. Eu li sobre a OrderModify, mas ainda não entendi. Vou tentar fazer isso à noite. Muito obrigado novamente por sua resposta, muito rápida:)
Desculpe, não está no idioma, mas eu realmente preciso saber se alguém sabe.
No Windows 7, alguns arquivos se recusam a abrir. Aperto "Abrir com...", seleciono um programa e ele NÃO aparece na lista de seleção de programas. Alguém sabe como remover esta restrição? Não o tinha na XP. A merda dos setes está me matando :(
Suspeito que o registro precisa ser limpo. Especificamente, não posso clicar duas vezes no formato FB2. CoolReader run e tudo está bem. abre. clique duas vezes para executar o formato de arquivo fb2 não quer.
Executa uma busca de registro Utillitoy JV-16 (sempre a usou) - bem, encontrou tantas entradas de registro que mencionam fb2, apenas horror - mesmo com medo de matar. O que fazer? Uma busca no google não rendeu nada :(
Saudações!
Ajude-me a refazer o código. O código não é novo, mas algo não está funcionando para mim.
Aqui está o código:
Eu tentei ao máximo abrir um loop quando uma troca menos é feita e depois de uma troca positiva, se eu tivesse uma troca menos, eu diminuiria meu saldo menos pelo lucro da última ordem fechada, que é maior que zero. Isto é, se a ordem fechou em menos, começamos a trabalhar, se a transação seguinte com lucro é mais que uma perda, fechamos, se na transação seguinte fechamos em mais, mas este mais não é mais que um menos, nas ordens anteriores, este mais de um saldo negativo, e a ordem seguinte comparamos com novos indicadores que já são menos, como antes fechamos em menos. É por isso que temos um equilíbrio positivo.
Desculpe, não está no idioma, mas eu realmente preciso dele, se alguém souber.
No Windows 7, alguns arquivos se recusam a abrir. Aperto "Abrir com...", seleciono um programa e ele NÃO aparece na lista de seleção de programas. Alguém sabe como remover esta restrição? Não o tinha na XP. A merda dos setes está me matando :(
Suspeito que o registro precisa ser limpo. Especificamente, não posso clicar duas vezes no formato FB2. CoolReader run e tudo está bem. abre. clique duas vezes para executar o formato de arquivo fb2 não quer.
Executa uma busca de registro Utillitoy JV-16 (sempre a usou) - bem, encontrou tantas entradas de registro que mencionam fb2, apenas horror - mesmo com medo de matar. O que fazer? Uma busca no google não rendeu nada :(
Iniciar - Todos os programas - Programas padrão - Definir mapeamentos
Desculpe, não está no idioma, mas eu realmente preciso saber se alguém sabe.
No Windows 7, alguns arquivos se recusam a abrir. Aperto "Abrir com...", seleciono um programa e ele NÃO aparece na lista de seleção de programas. Alguém sabe como remover esta restrição? Não o tinha na XP. A merda dos setes está me matando :(
Suspeito que o registro precisa ser limpo. Especificamente, não posso clicar duas vezes no formato FB2. CoolReader run e tudo está bem. abre. clique duas vezes para executar o formato de arquivo fb2 não quer.
Executa uma busca de registro Utillitoy JV-16 (sempre a usou) - bem, encontrou tantas entradas de registro que mencionam fb2, apenas horror - mesmo com medo de matar. O que fazer? Uma busca no google não rendeu nada :(
Gente...ajudar quem sabe!!!!
Eu tenho um problema e não tenho idéia de como ele pode ser resolvido, vou tentar explicar.
Portanto, no código, que publiquei, há 2 funções
//+
+ //| prepare array of tickets to close |
//+ +
void PrepareTicketsToClose(int signal, bool Invers, int & ticketsClose[][2], double & lots[],double arrayTickets[][9])
{
int size=ArrayRange(arrayTickets,0);
//
if (size==0) return;
int i,type,ticket,closeSize;
for (i=0;i<size;i++)
{
type=arrayTickets[i][1];
// se o tipo de ordem não for uma ordem de mercado, então pule
if (type>OP_SELL) continue;
if (Reverte) // inverter o tipo de ordem de mercado
{
if (type===OP_BUY) type=OP_SELL; else type=OP_BUY;
}
// aqui decidimos para cada pedido aberto seu destino
// deixá-lo no mercado ou adicioná-lo ao array no fechamento
if (type===OP_BUY)
{
//
// código permitindo deixar a compra
// como exemplo
if (signal====OP_BUY) continuar;
}
se (type===OP_SELL)
{
//
//code permitindo continuar vendendo
//as um exemplo
se (signal===OP_SELL) continuar;
}
closeSize=ArrayRange(ticketsFechar,0);
ArrayResize(ticketsFechar,fecharTamanho+1);
ArrayResize(ticketsFechar,fecharTamanho+1);
ticketsFechar[fecharTamanho][0] = arrayTickets[i][0]; // ticket #
ticketsFechar[closeSize][1] = arrayTickets[i][1] // tipo de pedido
// aqui especificamos quantos lotes fechar
lotes[closeSize] = arrayTickets[i][2]; // volume a ser fechado
// é possível fechar parcialmente, então a linha acima deve ser reescrita
}
//
retorno;
}
//+
+
//| Encerra pedidos com bilhetes especificados |
//+
+
void CloseMarketOrders(int ticketsArray[][2], double lotsArray[])
{
// int i,size=ArrayRange(ticketsArray,0); if (size==0) return;
int ticket,type;
double lots;
bool res;
int total=OrdensTotal();
for (i=0;i<size;i+++)
{
ticket = ticketsArray[i][0];
type = ticketsArray[i][1];
lots = lotsArray[i];
RefreshRates(); // just in case the market environment is updated
// purchase close block
if (type===OP_BUY)
{
res = OrderClose(ticket,lots,Bid,Slippage,Orange);
if (!res)
{
Print("Failed to close order to buy #",ticket","! Erro #",GetLastError());
// mais manipulação de erros, escreva você mesmo
}
}
}
// bloco de fechamento de vendas if (type===OP_SELL)
{
res = OrderClose(ticket,lots,Ask,Slippage,Orange);
if (!res)
{
Print("Failed to close sell order #",ticket,"! Erro #",GetLastError());
// mais manipulação de erros, escreva-se
}
}
}
//
retorno; }
O vazio PrepareTicketsToClose(int signal, bool Invers, int & ticketsClose[][2], double & lots[], double arrayTickets[][9]) precisa passar uma condição para decidir se a ordem deve ser fechada ou não...
Eu tentei colocar condições, mas nada funciona....
Alguém pode olhar e ver se há um erro nestas funções ou eu fiz asneira....
Iniciar - Todos os programas - Programas padrão - Definir mapeamentos
Esta operação leva a uma janela de seleção de programas. Especifique um programa e ele não aparece lá.
http://rhpc.ru/topic/200/
Restaurar as exassociações não ajudou - o leitor de lã é um ex-relator. Pensei que isso ajudaria. É uma pena. Existe algo mais? Eles têm um link para outras extensões de arquivo lá, mas não tem fb2.