19. 9. 2022

5 0

Leitura de um valor variável em uma regra acionada em Estratégia Init a partir de suas configurações de estratégia

Em uma regra acionada na Estratégia Init, para cada Atribuir função, StrategyQuant atribuir um "AssignVrbVleEntMlt"variável para sua variável em vez de um valor.

Então, durante a inicialização, ele devolverá o valor AssignVrbVleEntMlt à sua variável

A partir de uma estratégia produzida pela "H1388 Modelo de teste variável", podemos ler no código :

AssignVrbVleEntMlt = 210

AssignVrbVleEntMlt está recebendo o valor no local MALength

Depois AssignVrbVleEntMlt devolver o valor a MAL comprimento na iniciativa.

1/ Este exemplo de código de análise personalizada mostra como obter um valor de sua variável em uma regra acionada na estratégia Init

Nós obtemos o valor de uma função".toInitValue", a partir de um ResultadosGrupoe Nome da regraInit", e um nome da variável : MALength  (Neste exemplo)

Então estamos usando rg.specialValues() para definir o valor em "CA_MALength

 

pacote SQ.CustomAnalysis;

import com.strategyquant.lib.*;
importar java.util.arrayList;
import com.strategyquant.datalib.*;
import com.strategyquant.tradinglib.*;
importar SQ.Utils.Bouillant;
import org.slf4j.Logger;
importação org.slf4j.LoggerFactory;
import java.util.*;

// Criado na França por Emmanuel Bouillant-Evrard
classe pública CA_InitStratsSettings estende o CustomAnalysisMethod
{
    logger final estático público = LoggerFactory.getLogger(CA_InitStratsSettings.class);

    CA_InitStratsSettings() públicos
    {
        super("CA MALength Settings", TYPE_FILTER_STRATEGY);
    }
    
    //------------------------------------------------------------------------
    
    @Override
    filtro booleano públicoEstratégia (projeto String, tarefa String, banco de dados StringName, ResultsGroup rg) lança Exceção
    {
        tente
        {
            Bouillant BouilltParaObj1 = novo Bouillant();
            
            String IntTemp = BouilltParaObj1.toInitValue(rg, false, "Init", "MALength", 100);
            rg.specialValues().set("CA_MALength", Double.parseDouble(IntTemp));

            retornar verdadeiro;
      	catch(Exceção e)
        {
            Log.error("Erro CA_InitStratsSettings", e);
            retornar falso; // "Erro: " + e.getMessage();
        }
    }
    
    
    //------------------------------------------------------------------------
    
    @Override
    public ArrayList processDatabank(String project, String task, String databankName, ArrayList databankRG) lança Exceção {
        banco de dados de retornoRG;
    }
}

 

2 / Então o código da coluna DatabankColumn recupera o valor da Análise Personalizada

Estamos usando rg.specialValues para recuperar o valor do CA_MALength
pacote SQ.Colunas.Bancos de dados;
import com.strategyquant.lib.*;
import com.strategyquant.datalib.*;
import com.strategyquant.tradinglib.*;
importar org.slf4j.Logger;
importação org.slf4j.LoggerFactory;

// Criado na França por Emmanuel Bouillant-Evrard
classe pública StratSettingsMALength estende Banco de DadosColuna
{
  logger final estático público = LoggerFactory.getLogger(StratSettingsMALength.class);
  public StratSettingsMALength()
  {
    super("MALength Settings", DatabankColumn.Decimal2, ValueTypes.Maximize, 0, 0, 100);
  }
  
  //------------------------------------------------------------------------
  /**
   * Este método deve retornar o valor computado desta nova coluna. Normalmente, você deve calculá-lo a partir da lista de ordens
   * ou a partir de alguns valores estatísticos já computados (outras colunas de banco de dados).
   */
  @Override
  público String getValue(ResultsGroup rg, String resultKey, byte direction, byte plType, byte sampleType) lança Exceção
  {
    tente
    {
      valor duplo = rg.specialValues().getDouble("CA_MALength", -1);

      if(valor == -1)
      {
        // isto significa que o valor não foi definido
        retornar NOT_AVAILABLE;
      } else
      {
        // valor de retorno convertido em String
        retornar java.lang.Double.toString(valor);
      }
    catch(Exceção e)
    {
      Log.error("Error StratSettingsMALength", e);
      retornar ""; // "Erro: " + e.getMessage();
    }
  }
}

 

3/ Como instalá-lo

  • Importação os trechos no Editor de código
  • Compilar tudo
  • Reiniciar EstratégiaQuant 
  • então selecione a Análise Personalizada no Construtor :

 

 

Depois adicionamos esta nova coluna a um banco de dados e lemos o valor de nossas regras Init

Se a análise personalizada não for mais utilizada, o banco de dados de colunas deve ser removido para evitar qualquer erro no registro

Meu nome é Emmanuel Bouillant-Evrard, Engenheiro especializado em Finanças. Trabalhei em Pesquisa e Desenvolvimento em Finanças nos EUA, Canadá e França durante 24 anos.

 

 

Assine
Notificação de
0 Comentários
Feedbacks em linha
Ver todos os comentários

Postos relacionados