Hébergeur de fichiers indépendant

BF.lua

À propos

Type de fichier
Fichier LUA de 2 Ko (text/plain)
Confidentialité
Fichier public, envoyé le 14 février 2019 à 14:34, depuis l'adresse IP 88.167.x.x (France)
Sécurité
Ne contient aucun Virus ou Malware connus - Dernière vérification: 2 jours
Statistiques
La présente page de téléchargement a été vue 48 fois depuis l'envoi du fichier
Page de téléchargement

Aperçu du fichier


-- Indicateur Bougie Flottante v0.4
-- Bastien Faure beobast@gmail.com
-- Cet indicateur détecte les bougies flottantes

local first, source, period, deviation, BB, bodySize, up, down;

function Init()
    indicator:name("Indicateur Bougie Flottante");
    indicator:description("Detecte les bougies flottantes");
    indicator:requiredSource(core.Bar);
    indicator:type(core.Indicator);
    indicator.parameters:addInteger("period", "Nombre de periodes des BB", "Nombre de periodes des BB", 20, 1, 10000);
    indicator.parameters:addDouble("deviation", "Ecart-type des BB", "Ecart-type des BB", 2.0, 0.0001, 1000.0);
    indicator.parameters:addInteger("bodySize", "% du corps de la bougie en dehors des BB", "% du corps de la bougie devant etre en dehors des BB", 90, 1, 100);
    indicator.parameters:addInteger("size", "Taille", "Taille du drapeau dessinee", 14);
end

function Prepare(nameOnly)
    source = instance.source;
    period = instance.parameters.period;
    deviation = instance.parameters.deviation;
    bodySize = instance.parameters.bodySize / 100;
    first = source:first() + period;
    local name = profile:id() .. "(" .. source:name() .. ", " .. period .. ", " .. deviation .. ")";
    local size = instance.parameters.size;
    instance:name(name);
    
    if nameOnly then return; end
	
    BB = core.indicators:create("BB", source, period, deviation);
    up = instance:createTextOutput("Up", "Up", "Wingdings", size, core.H_Center, core.V_Top, core.rgb(0, 0, 0), first);
	down = instance:createTextOutput("Down", "Down", "Wingdings", size, core.H_Center, core.V_Bottom, core.rgb(0, 0, 0), first);
end

function Update(period, mode)
    if period <= first then return; end

    BB:update(mode);
    local top = BB.TL[period];
    local bottom = BB.BL[period];
    local close = source.close[period];
    local open = source.open[period];
    local max = math.max(open, close);
    local min = math.min(open, close);
    local range = math.abs(open - close);

    if (max > top and ((max - top) / range) > bodySize) then
        up:set(period, source.high[period], "\79", "");
    elseif (min < bottom and ((bottom - min) / range) > bodySize) then
        down:set(period, source.low[period], "\79", "");
    else
        up:setNoData(period);
        down:setNoData(period);
    end

end



Partager le fichier

Télécharger BF.lua

Télécharger le fichier (2 Ko)