[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 370

 
Boneshapper:

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 :(

 

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:

  *///-----------------Закрытие по истории в безубыток--------------------
   //---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- 
  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.

 
drknn:

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
 
drknn:

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 :(

http://rhpc.ru/topic/200/
 

Gente...ajudar quem sabe!!!!


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....
Arquivos anexados:
osc_test.mq4  37 kb
 
O lance pode ser igual a 0 em um tick stream?(às vezes) durante uma sessão de negociação
 
tara:

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á.
 

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.
Razão: