La estrategia de fluctuación fácil

El autor:Las judías., Fecha: 2020-04-18 22:54:45
Las etiquetas:El ATR

El nombre completo de T-Shirt es T-Shirt Public, y la traducción está en inglés. A continuación se muestra el contenido de la transmisión. ¡Por favor, sigan más en el mundo de la cantidad por miles para obtener más código fuente de estrategias! Y también me he hecho un anuncio. Publicado en "Diario cuantificado de las judías" ¿Qué es lo que está sucediendo con el dinero en línea? ¿Qué está sucediendo con el dinero en línea? ¿Qué es lo que está sucediendo?

Es sólo ¡Demo! ¡Demo! ¡Tía Demo! ¡Papás! ¡La verdad es que hay que tener cuidado!


¡Es tan fácil ganar BTC con una buena tasa de fluctuación! El mundo de la cantidad hace 3 días La investigación y desarrollo de estrategias de cuantificación del aluminio es en realidad una doble dimensión, muy difícil y difícil para aquellos que están entrando en el negocio, difícil no sólo es el código a nivel de aluminio, sino también difícil es el pensamiento lógico estratégico a nivel de aluminio.

¡Hola a todos los amigos de la cantidad!

Este es el segundo artículo de este artículo especial, y tenemos el honor de invitar a todos a que vayan a ver a los monjes de la orilla del océano (microsignales LE_CHIFFRE1) para presentarles: ¡cómo usar el factor de fluctuación para ganar fácilmente en el mercado de BTC y lograr una reducción de la dimensión de la barrera de la orilla!

Este número abarca la revelación de ideas, la implementación de la codificación y la comprensión personal, etc., no se puede decir que esté lleno de productos secos, miles de personas que lo leen también se sienten beneficiadas, realmente admiran y agradecen a Liu.

A continuación, se muestra el video en el que se muestra a los jugadores de los juegos de azar de los juegos de azar de los juegos de azar.

01

Preámbulo

Hola, hoy tengo el privilegio de lanzar un artículo en el número público de miles y miles de cuantificaciones, y también agradezco la invitación del jefe T (uno de los miles de números externos).

El dueño de T dice que escribir un cuantificado, sin dar ningún alcance, realmente no sé de dónde escribirlo. Entonces empiece con su tema favorito para hablar con otros. Indicadores y estrategias de cuantificación (que también pueden ser ayudados y automatizados), por supuesto, finalmente, también debemos agregar una frase que siempre se dice: invertir con riesgo, entrar en el mercado con precaución, las estrategias solo ofrecen ideas y lecciones, ganancias y pérdidas.

Después de la declaración de exoneración, aquí comienza el tema principal.

02

Una estrategia de fluctuación simple

Los que me conocen saben que personalmente no me gusta mucho el juego de Alfa, comparativamente creo más en las beta, más en las beta. Por qué, e.........mmmmm, no sé qué respondió. Si están interesados, pueden escribir en privado, dejar un mensaje al autor del número público, la lógica es clara y el autor mismo les enviará un pequeño paquete rojo.

La investigación y desarrollo de estrategias cuantitativas es en realidad una doble cara, muy difícil para los que recién comienzan, difícil no sólo es el código a nivel de la técnica de la magia, también difícil es el pensamiento lógico estratégico a nivel de la jerarquía. Ambos son importantes, no hay que prejuiciarlos. La estrategia que les presentamos hoy en realidad fue inspirada hace muchos años por un informe de investigación de HuaThai, todos miramos detenidamente sólo para inspirar a los expertos, por lo que esto se dice porque la lógica estratégica ya no es del todo lo que se menciona en el informe de investigación, específicamente el informe de investigación.

El algoritmo estratégico utiliza el principio de fluctuación de la rentabilidad de rotación de la caída de los precios de los logarítmos de ciertos ciclos, según el cual se calcula el valor máximo y mínimo de rotación de ciertos ciclos, el valor máximo es el tubo superior, el mínimo es el tubo inferior, rompe el tubo superior, abra una posición. El promedio de rotación del tubo superior y inferior es la línea de posición.

La interfaz de visualización gráfica específica se puede consultar en el siguiente PPT.

img

En realidad, esta estrategia es la estrategia que él mismo usó antes para hacer ETFs de base ancha, y por supuesto también se usa para comprar y vender acciones al elegir índices, luego se trasladó directamente al círculo monetario, y se sorprendió al descubrir que realmente redujo la dimensión del golpe, los parámetros no necesitan cambiar.

img

El siguiente gráfico muestra el rendimiento de las revisiones durante el año, con algunas secuencias de código lógicas específicas:

img

En la parte superior, después de leer los datos, los pandas hacen el cálculo de los datos indicadores.

img

Una vez finalizado el cálculo, se puede exportar los datos a través de la función pd.to_csv y visualizar las pyecharts utilizadas en la pantalla anterior.

Todos los estrategias, visualizaciones y código de los indicadores de rendimiento son una charla típica.

03

La conversación se cuantifica

Primero, una buena estrategia no tiene miedo de ser abierta, esto no es un desarrollo de armas de combate a nivel de guerra que decida la vida o la muerte, por lo que yo y otras agencias o personas no tenemos miedo de lo que se llama secretos de estrategia, porque a mi parecer no hay secretos, sino ideas que todos piensan y no esperan. Esta versión es la versión más antigua de la misma, sobre la base de la cual se han hecho varias mejoras, por ejemplo, se han agregado otras condiciones de juicio y bloqueo de daños, etc., y por supuesto, se incluyen otros parámetros de ajuste del ciclo de variedades, etc.

Segundo: Muchas personas, ya sean novatas o ya iniciadas o incluso jugadores antiguos, necesitan fuentes de inspiración, incluida la exploración de factores de las acciones, ideas de estrategias de tiempo, etc., que a menudo se basan en la experiencia subjetiva, informes de investigación, intercambio de comunicación dentro del círculo, etc. No excluye algunas estrategias compradas en el mercado ahora y luego leer y comprender, según su propia capacidad de asumir riesgos y necesidades específicas en la modificación de la versión, etc.

En resumen, la cuantificación era un producto de la tradición, la negociación programática pertenece a un subconjunto de la cuantificación, ya en la universidad propia (alrededor de 2009), cuando la tuberculosis, la pirámide y la programación fueron cazadas, y si se continúa hoy, se puede decir que los primeros profetas de este grupo han pasado 10 años, sin incluir las estrategias y sistemas de alta frecuencia que regresaron de Wall Street. Por lo tanto, la estrategia de cuantificación o la estrategia de programación en China ha durado durante algún tiempo, pero en el círculo actual de mercado y los actores y el apoyo de la política, la cuantificación sigue siendo una parte muy pequeña, a pesar de los informes llenos de análisis y modelos estratégicos.

Por último, gracias a los miles y miles de personas que cuentan con el nombre de la comunidad por su confianza en su profesión y por la invitación a escribir.

¡Gracias otra vez por la maravillosa explicación!

Los amigos que aún no se han unido a los grupos de discusión pueden unirse rápidamente para obtener información.

¡El edificio de la ciudad!

img

WeChat es una limpieza El número de público


/*backtest
start: 2019-04-18 00:00:00
end: 2020-04-17 23:59:00
period: 15m
exchanges: [{"eid":"Futures_BitMEX","currency":"XBT_USD"}]
*/

// 胖友们!! 实盘前请注意!! 此内容仅是吕神翻译demo, 上实盘请自行添加相关内容.
// 是Demo!!! 实盘谨慎!!!

// 初始化
exchange.SetContractType('XBTUSD')
var vix_arr = []
var vix_ma = []
var vix_ma_up = []
var vix_ma_dw = []
var LastBarTime = 0
var isFirst = true

function initVix() {
    records = _C(exchange.GetRecords)
    Log(records.length)
    if (records && records.length > 2 * N + 2) {
        // 初始化前N个vix值
        for (var i = -2; i < N - 1; i++) {
            Bar = records[records.length - N + i]
            lastNbar = records[records.length - N + i - N]
            Vix()
        }
    }
    // Log("vix_arr", vix_arr.length, vix_arr)
    // Log("vix_ma", vix_ma.length, vix_ma)
    // Log("vix_ma_up", vix_ma_up.length, vix_ma_up)
    // Log("vix_ma_dw", vix_ma_dw.length, vix_ma_dw)
}

// 获取交易所信息
function UpdateInfo() {
    account = _C(exchange.GetAccount)
    pos = _C(exchange.GetPosition)
    records = _C(exchange.GetRecords)
    Bar = records[records.length - 1]
    lastNbar = records[records.length - N]
    ticker = _C(exchange.GetTicker)
}

// 计算波动率及上下轨
function Vix() {
    // 当每K结束时计算
    if (LastBarTime !== Bar.Time) {
        // 当K达到计算根数开始计算vix_arr
        if (records && records.length > N) {
            // 获取vix 当前close自然对数 除以 前90根自然对数 减一
            vix = Math.log(Bar.Close) / Math.log(lastNbar.Close) - 1
            vix_arr.push(vix)
            //Log("vix_arr", vix_arr)
        }
        // 当vix_arr达到计算根数时开始计算vix_ma
        if (vix_arr && vix_arr.length > N) {
            // 获取对应周期vix算其移动平均值
            vix_ma = TA.MA(vix_arr, N)
            // 去除ma中的null值
            vix_ma = vix_ma.filter(function(val) {
                return !(!val || val === "");
            })
            //Log("vix_ma", vix_ma)
            // 获取上下通道
            vix_up = TA.Highest(vix_arr, N)
            vix_dw = TA.Lowest(vix_arr, N)
            vix_ma_up.push(vix_up)
            vix_ma_dw.push(vix_dw)
            // Log("vix_ma_up", vix_ma_up)
            //Log("vix_ma_dw", vix_ma_dw)
            // 限制所有数组长度
            if (vix_arr.length > 2000) {
                vix_arr.splice(0, 1);
            }
            if (vix_ma.length > 2000) {
                vix_ma.splice(0, 1);
            }
            if (vix_ma_up.length > 2000) {
                vix_ma_up.splice(0, 1);
            }
            if (vix_ma_dw.length > 2000) {
                vix_ma_dw.splice(0, 1);
            }
        }
        LastBarTime = Bar.Time
    }
}

// 画线
function PlotMA_Kline(records, isFirst) {
    //$.PlotRecords(records, "K")
    if (isFirst) {
        for (var i = records.length - 1 - N; i <= records.length - 1; i++) {
            if (vix_ma[i] !== null) {
                $.PlotLine("vix_arr", vix_arr[i], records[i].Time)
                $.PlotLine("vix_ma", vix_ma[i], records[i].Time)
                $.PlotLine("vix_ma_up", vix_ma_up[i], records[i].Time)
                $.PlotLine("vix_ma_dw", vix_ma_dw[i], records[i].Time)
            }
        }
        PreBarTime = records[records.length - 1].Time
    } else {
        if (PreBarTime !== records[records.length - 1].Time) {
            $.PlotLine("vix_arr", vix_arr[vix_arr.length - 2], records[records.length - 2].Time)
            $.PlotLine("vix_ma", vix_ma[vix_ma.length - 2], records[records.length - 2].Time)
            $.PlotLine("vix_ma_up", vix_ma_up[vix_ma_up.length - 2], records[records.length - 2].Time)
            $.PlotLine("vix_ma_dw", vix_ma_dw[vix_ma_dw.length - 2], records[records.length - 2].Time)
            PreBarTime = records[records.length - 1].Time
        }
        $.PlotLine("vix_arr", vix_arr[vix_arr.length - 1], records[records.length - 1].Time)
        $.PlotLine("vix_ma", vix_ma[vix_ma.length - 1], records[records.length - 1].Time)
        $.PlotLine("vix_ma_up", vix_ma_up[vix_ma_up.length - 1], records[records.length - 1].Time)
        $.PlotLine("vix_ma_dw", vix_ma_dw[vix_ma_dw.length - 1], records[records.length - 1].Time)
    }
}

// 交易逻辑
function onTick() {
    // 无仓位时
    if (pos.length == 0) {
        // Long 当前K线的收盘价 > 上轨 && 之前K线的收盘价 <= 上轨
        if (vix_arr[vix_arr.length - 1] > vix_ma_up[vix_ma_up.length - 1] &&
            vix_arr[vix_arr.length - 2] <= vix_ma_up[vix_ma_up.length - 2]) {
            exchange.SetDirection("buy")
            exchange.Buy(ticker.Sell, Amount)
            $.PlotFlag(new Date().getTime(), 'Buy', 'BK')
        }
        // Short 当前K线的收盘价 < 下轨 && 之前K线的收盘价 >= 下轨
        if (vix_arr[vix_arr.length - 1] < vix_ma_dw[vix_ma_dw.length - 1] &&
            vix_arr[vix_arr.length - 2] >= vix_ma_dw[vix_ma_dw.length - 2]) {
            exchange.SetDirection("sell")
            exchange.Sell(ticker.Buy, Amount)
            $.PlotFlag(new Date().getTime(), 'Sell', 'SK')
        }
    }
    // 多仓时
    if (pos.length > 0 && pos[0].Type == 0) {
        // 平多 当前K线的收盘价 < 中轨 && 之前K线的收盘价 >= 中轨
        if (vix_arr[vix_arr.length - 1] < vix_ma[vix_ma.length - 1] &&
            vix_arr[vix_arr.length - 2] >= vix_ma[vix_ma.length - 2]) {
            exchange.SetDirection("closebuy")
            exchange.Sell(ticker.Buy, pos[0].Amount)
            $.PlotFlag(new Date().getTime(), 'Sell', 'SBK')
        }
    }
    // 空仓时
    if (pos.length > 0 && pos[0].Type == 1) {
        // 平空 当前K线的收盘价 > 中轨 && 之前K线的收盘价 <= 中轨
        if (vix_arr[vix_arr.length - 1] > vix_ma[vix_ma.length - 1] &&
            vix_arr[vix_arr.length - 2] <= vix_ma[vix_ma.length - 2]) {
            exchange.SetDirection("closesell")
            exchange.Buy(ticker.Sell, pos[0].Amount)
            $.PlotFlag(new Date().getTime(), 'Buy', 'PSK')
        }
    }
}

function main() {
    initVix()
    while (1) {
        UpdateInfo()
        Vix()
        onTick()
        if (records) {
            PlotMA_Kline(records, isFirst)
            //Log('画线')
            isFirst = false
        }
        Sleep(5 * 1000)
    }
}

Relacionados

Más.

El inventor de la cuantificaciónEstoy cruzando https://www.fmz.com/strategy/361827

La mezcla de hierroLas semillas son hermosas.

Un poco de té negroEsta estrategia no parece tener mucho que ver con la volatilidad.

La homilíaNo puedo describir la frecuencia de fluctuación, apenas puedo decir que sea una relación de amplitud de fluctuación, aparte de la de hace 90 ciclos. El método de apertura de HH, LL, es la operación de DC en el canal de Dongcheon, y el equilibrio ha optado por una estrategia uniforme; en general, es un sistema de marismas mejorado. La volatilidad implícita, ¿o dejarlo a los expertos para describirlo?

Nube ligera¿Señorita Bean, quiere recoger el equipaje?

¿Qué quieres decir?Si me preguntas si apoyo, claro que lo apoyo.

¿Qué quieres decir?Si me preguntas si apoyo, claro que lo apoyo.

Nube ligeraQué bueno.

Las judías.Estimamos que el próximo semestre está vacío.

Nube ligera▽。。。。。。 Está bien。。。

Las judías. (^U^)ノ~YO

Las judías.Ahora no tengo tiempo, no tengo tiempo para pensar en lo que voy a hacer... pero mi habilidad para codificar no es tan buena... es eso, o no puedo usar series. /(Yoo-chan) /~~ Es el nombre de la película.