一旦条件成立,我想打印“ i”的值。 例如: 关闭> ema(close,1),关闭> ema(close,2)和关闭> ema(close,3)
我想打印1,2和3
这是代码
//@version=4
study("My Script")
ma(x) =>
ema = x
for i = 1 to 20
ema := ema(x,i)
tick = x > ema ? i : 0
plot(ma(close))
答案 0 :(得分:1)
内置方法存在错误,并且循环的索引用作长度,因此您应该使用
CREATE OR REPLACE FUNCTION audit.if_modified_func_MyTable() RETURNS TRIGGER AS $body$
DECLARE
audit_row audit.logged_actions_MyTable;
include_values boolean;
log_diffs boolean;
h_old hstore;
h_new hstore;
excluded_cols text[] = ARRAY[]::text[];
BEGIN
IF TG_WHEN <> 'AFTER' THEN
RAISE EXCEPTION 'audit.if_modified_func_MyTable() may only run as an AFTER trigger';
END IF;
audit_row = ROW(
nextval('audit.logged_actions_MyTable_event_id_seq'), -- event_id
TG_TABLE_SCHEMA::text, -- schema_name
TG_TABLE_NAME::text, -- table_name
TG_RELID, -- relation OID for much quicker searches
session_user::text, -- session_user_name
current_timestamp, -- action_tstamp_tx
statement_timestamp(), -- action_tstamp_stm
clock_timestamp(), -- action_tstamp_clk
txid_current(), -- transaction ID
current_setting('application_name'), -- client application
inet_client_addr(), -- client_addr
inet_client_port(), -- client_port
current_query(), -- top-level query or queries (if multistatement) from client
substring(TG_OP,1,1), -- action
NULL, NULL, -- row_data, changed_fields
'f' -- statement_only
);
IF NOT TG_ARGV[0]::boolean IS DISTINCT FROM 'f'::boolean THEN
audit_row.client_query = NULL;
END IF;
IF TG_ARGV[1] IS NOT NULL THEN
excluded_cols = TG_ARGV[1]::text[];
END IF;
IF (TG_OP = 'UPDATE' AND TG_LEVEL = 'ROW') THEN
audit_row.row_data = hstore(OLD.*) - excluded_cols;
audit_row.changed_fields = (hstore(NEW.*) - audit_row.row_data) - excluded_cols;
audit_row.MyTableid = (old."MyTableid");
audit_row.modifiedon = Now();
audit_row.modifiedby = (select firstname || ' ' || lastname as name from public.Users where userid=(old."modifiedby"));
audit_row.ActualField = (hstore(old.*) - (audit_row.row_data - ((hstore(old.*)) - (hstore(NEW.*))) ));
-- ActualField is taken to get old values of only the columns which have been changed and not all the columns.
IF audit_row.changed_fields = hstore('') THEN
-- All changed fields are ignored. Skip this update.
RETURN NULL;
END IF;
ELSIF (TG_OP = 'DELETE' AND TG_LEVEL = 'ROW') THEN
audit_row.row_data = hstore(OLD.*) - excluded_cols;
ELSIF (TG_OP = 'INSERT' AND TG_LEVEL = 'ROW') THEN
audit_row.row_data = hstore(NEW.*) - excluded_cols;
ELSIF (TG_LEVEL = 'STATEMENT' AND TG_OP IN ('INSERT','UPDATE','DELETE','TRUNCATE')) THEN
audit_row.statement_only = 't';
ELSE
RAISE EXCEPTION '[audit.if_modified_func_MyTable] - Trigger func added as trigger for unhandled case: %, %',TG_OP, TG_LEVEL;
RETURN NULL;
END IF;
INSERT INTO audit.logged_actions_MyTable VALUES (audit_row.*);
RETURN NULL;
END;
$body$
LANGUAGE plpgsql
SECURITY DEFINER
SET search_path = pg_catalog, public;
的松实现:
ema