avatar of 发明者量化-小小梦 发明者量化-小小梦
focar em Mensagem privada
4
focar em
1271
Seguidores

Bem-estar para novos alunos, um modelo de gráfico simples

Criado em: 2016-05-22 23:17:48, atualizado em:
comments   2
hits   2148

Um modelo de gráfico simples, e aqui está uma breve introdução.

A imagem acima: Bem-estar para novos alunos, um modelo de gráfico simples

A razão para isso é que, ao aprender a estratégia de dupla equilíbrio, não é possível observar intuitivamente a abertura de posição, o estudo do ponto de equilíbrio e a escrita do código, e o código não é intuitivo ao testar com o disco, olhando para o cabeçalho do diário e olhando para o lado de fora. Gostaria de escrever um gráfico de visualização intuitiva, baseado em um exemplo de código grande como Z, escrevi um modelo de gráfico simples, agora a função é muito simples, apenas exibindo a linha K em tempo real, exibindo a posição aberta e a posição fechada. Outros recursos ainda não foram adicionados, como alguns Os indicadores escritos por si mesmos são mostrados em linhas, exibidos em gráficos de linhas K, etc.), e pretendem ser adicionados aos poucos. Como isso ainda não foi muito testado, é oferecido para todos aprenderem. O uso é simples: Existem duas funções de exportação temporária:

$.SignOP(time,price,amount,state)
$.Draw(records)

\(.SignOP ((time,price,amount,state) Esta função é usada logo após a abertura de uma posição de liquidação, marcando a abertura de uma posição de liquidação para a linha K, com 4 parâmetros ▽. \).Draw(records) Esta função é usada para desenhar uma linha K. Esta função precisa ser colocada no início do ciclo principal da estratégia, o parâmetro pode ser transmitido para null, para que a função obtenha-se.

A seguir, um exemplo de 30 linhas de código com Z maior, para acessar o código usando este modelo. Apenas três sentenças foram adicionadas ao código.

function main(){
	var STATE_IDLE = -1;//空闲状态
	var state = STATE_IDLE;
	var opAmount = 0;
	var initAccount = $.GetAccount();
	Log(initAccount);//输出账户初始信息
	while(true){
---------------------------------------------------------------------------------------------
       $.Draw(null);//  画图表K线
--------------------------------------------------------------------------------------------
       if(state === STATE_IDLE){
       	var n = $.Cross(FastPeriod,SlowPeriod);
       	if(Math.abs(n) >= EnterPeriod){
       		opAmount = parseFloat((initAccount.Stocks * PositionRatio).toFixed(3));
       		var obj = n > 0 ? $.Buy(opAmount) : $.Sell(opAmount);
       		if(obj){
       			opAmount = obj.amount;
       			state = n > 0 ? PD_LONG : PD_SHORT;
       			Log("开仓详情",obj,"交叉周期",n);
       		}
---------------------------------------------------------------------------------------------
               $.SignOP((new Date()).getTime(),obj.price,obj.amount,(n > 0 ? 1 : 2) ); //标记买入  卖出 开仓 
---------------------------------------------------------------------------------------------
       	}
       }else{
       	var n = $.Cross(ExitFastPeriod,ExitSlowPeriod);
       	if(Math.abs(n) >= ExitPeriod && ((state === PD_LONG && n < 0 ) || (state === PD_SHORT && n > 0))){
       		var obj  =  state === PD_LONG? $.Sell(opAmount) : $.Buy(opAmount);
---------------------------------------------------------------------------------------------
               $.SignOP((new Date()).getTime(),obj.price,obj.amount,0); //标记平仓
---------------------------------------------------------------------------------------------
       		state = STATE_IDLE;
       		var nowAccount = $.GetAccount();
       		LogProfit(nowAccount.Balance - initAccount.Balance,"钱:",nowAccount.Balance,"币:",nowAccount.Stocks,"平仓详情:",obj,"交叉周期",n);
       	}
       }
       Sleep(Interval*1000);//暂停10秒
	}
}
Gráfico de linha K gerado pelo sistema

Bem-estar para novos alunos, um modelo de gráfico simples

Diagrama de linha K desenhado pelo modelo

Bem-estar para novos alunos, um modelo de gráfico simples

O código ainda não está perfeito, bem-vindo a corrigir o machado do grande deus, perfeito.