如何阻止连续打印多个买入/卖出信号?

2024-05-02

我正在尝试用我的脚本实现一些目标......

  1. 如果前一个信号是“卖出”,我只想打印“买入”信号(反之亦然)
  2. 我只想在小于之前的“卖出”信号时打印“买入”信号。 (反之亦然)

我一整天都在努力寻找这个问题的解决方案。 我不明白如何使用“valuewhen”或“barssince”来实现这一目标。

//Long
emalong = out1 > out2
macdlong = macd > signal and ((macd[1] < signal[1]) or (macd[2] < 
    signal[2]))
psarlong = psar < close and ((psar[1] > close[1]) or (psar[2] > 
    close[2]))

//Short
emashort = out1 < out2
macdshort = macd < signal and ((macd[1] > signal[1]) or (macd[2] 
    > signal[2]))
psarshort = psar > close and ((psar[1] < close[1]) or (psar[2] < 
    close[2]))

//Collect
longentry = emalong and macdlong and psarlong
shortentry = emashort and macdshort and psarshort

//Plot
plotshape(longentry, style=shape.circle, color=#26a69a, text="⬆", 
    textcolor=#ffffff, location=location.belowbar, 
    size=size.tiny)
plotshape(shortentry, style=shape.circle, color=#ef5350, 
    text="⬇", textcolor=#ffffff, location=location.abovebar, 
    size=size.tiny)

为此,我们需要创建一个不会在每个柱上重新计算的变量。 “var”让我们可以这样做,因为它将保留我们在运行时赋予它的任何值。然后我们可以有条件地为其分配一个新变量。在这种情况下,我们将使用您的多头和空头信号将多头或空头的数字分配为 1 或 -1。我在下面添加了注释:

// we create a variable that "saves" and doesnt calc on each bar 
var pos = 0

// we save it to a new number when long happens. Long can be 1 
if longentry and pos <= 0
    pos := 1
// we save it again when short happens. Short can be -1 
if shortentry and pos >= 0 
    pos := -1

// here we check if we have a newly detetected change from another number to our pos number this bar
// Is pos equal to 1 and was it not equal to 1 one bar ago
longsignal  = pos ==  1 and (pos !=  1)[1]
shortsignal = pos == -1 and (pos != -1)[1]

//Plot
// we change our plot shape to coincide with the change detection 
plotshape(longsignal,  style=shape.circle, color=#26a69a, text="⬆", textcolor=#ffffff, location=location.belowbar, size=size.tiny)
plotshape(shortsignal, style=shape.circle, color=#ef5350, text="⬇", textcolor=#ffffff, location=location.abovebar, size=size.tiny)

从这个意义上说,我们甚至可以创建一个退出变量,使我们的头寸变为零。我们必须制定退出条件并以相同的方式将 pos 分配给 0。

干杯并祝您编码和交易好运

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何阻止连续打印多个买入/卖出信号? 的相关文章

随机推荐

  • 使用 d3.json()/d3.xhr() 进行多部分发布请求

    目前是否不支持通过请求提交多部分表单数据 我了解如何使用 d3 json post 执行 POST 如上所述here https stackoverflow com questions 12493758 xhr post request u
  • 使用 MediaRecorder 录制屏幕特定视图

    我想录制特定的屏幕视频View链接只想记录里面执行的动作LinearLayout 现在 MediaRecorder正在录制整个屏幕 如何录制屏幕的特定部分 MediaRecorder 通过媒体投影API 记录整个屏幕 至少从 Android
  • 设置刻度标签的背景颜色

    我有一个子图 其刻度标签与数据重叠 我想将 x tick 标签设置为具有背景颜色 例如白色 目前我只能找到如何更改标签的颜色 但不能找到背景 我知道如何使用文本对象获得效果 如下所示 注意 我不希望整个子图的边距被着色 而只是刻度标签 MW
  • 展平数组中的对象

    大家好 我从响应中获取了一系列对象 我需要将所有学生对象展平为简单的学生姓名 但不确定如何进行 任何帮助将不胜感激 数组示例 students id 123456 name Student Name active true students
  • 无法将“MongoDB.Bson.Serialization.Serializers.DateTimeSerializer”类型的对象转换为“MongoDB.Bson.Serialization.IBsonSerializer”类型

    在寻找解决方案时我得到了this https stackoverflow com questions 30421379 mongodb custom collection serializer and this http mongodb g
  • 在 Seaborn 中的 distplot 或 kdeplot 的平均峰值处绘制一个点

    我感兴趣的是自动绘制分布平均峰值上方的点 由 kdeplot 或带有 kde 的 distplot 表示 手动绘制点和线很简单 但我很难推导出这个最大坐标点 例如 下面生成的 kdeplot 应该在大约 3 5 1 0 处绘制一个点 iri
  • 如何在一张图中显示多个相邻的图像?

    我正在使用 Julia PyPlot 和 Images 来处理一些图片 因为显示几十个图是不可能的 所以我想堆叠图像 如下所示 我有图像数据Array Array Float64 2 1 已经正常化了 以下代码仅显示最后一个最小的图像 该数
  • Java Webstart 和 URLConnection 缓存 API

    的描述URLConnection 缓存 API http docs oracle com javase 6 docs technotes guides net http cache html最后一句指出 Java 2 标准版中没有 URLC
  • 让网站登录也能在 WordPress 上使用

    我使用 PHP 和 MySQL 开发了一个网站 该网站已经有登录和注册表单 myweb com 我已经在这个网址添加了 wordpressmyweb com blog 我想禁用 WordPress 上的登录和注册页面并强制用户使用我的 基本
  • 总小时数无法从 Android 插入 MySQL

    我使用以下公式获得总小时数 public void updateTotalHours int a SplitTime objMyCustomBaseAdapter getFistTime int b SplitTime objMyCusto
  • 作业调度 API android L

    我正在制作一个使用 jobscheduler API 的应用程序 我想定期以及在设备充电时运行服务 这是代码 JobInfo Builder builder new JobInfo Builder kJobId mServiceCompon
  • 交响二阶颂歌

    我有一个简单的二阶 ODE 的齐次解 当我尝试使用 Sympy 求解初始值时 它返回相同的解 它应该替代 y 0 和 y 0 并产生一个没有常数的解 但事实并非如此 这是建立方程的代码 它是一个弹簧平衡方程 k 弹簧常数 m 质量 我在其他
  • 如何移动随 Visual Studio 2017 安装的 Android SDK 文件夹?

    我已将 VS 2017 安装在其默认路径 C 驱动器 中 但由于 Android 文件夹较大 它耗尽了我的大部分驱动器空间C Users USERNAME Local Android 该文件夹是由 VS 2017 安装程序自动创建的 如何将
  • 如何在禁用按钮上启用 Bootstrap 工具提示?

    我需要在禁用的按钮上显示工具提示 并在启用的按钮上删除它 目前 它的工作原理是相反的 扭转这种行为的最佳方法是什么 rel tooltip tooltip
  • iPhone 指南针显示特定位置

    我是 Objective c 的新手 所以如果我的问题太垃圾 我想道歉 我正在编写一个指南针 但它正在工作 感谢教程 给出了实际位置 经度和纬度 指南针内的箭头是否有可能向我显示到特定位置 经度2和纬度2 的方向 我读到我必须考虑 iPho
  • 如何存储xpath的内容/值?

    假设xpath如下 xpath div id cslGridViewPanelControl div div 2 div table tbody tr td 2 table tbody tr td table tbody tr td div
  • C#中同步接口和实现注释的方法

    是否有自动方法在接口及其实现之间同步注释 我目前正在记录它们 并且不想手动使它们保持同步 UPDATE 考虑这段代码 interface IFoo
  • Spring Web 连接到嵌入 Jboss 服务器 7.1.1 的 HornetQ JMS

    我正在尝试设置 spring web 以通过以下方式连接到远程 Jboss 7 1 1 HornetQ JMSthis http java dzone com articles connecting spring地点 但我收到以下错误 是否
  • 检索属于特定命名空间的所有实体时返回的内部类型

    我正在尝试检索属于特定名称空间的所有实体 查询非常简单 query datastore Query namespace
  • 如何阻止连续打印多个买入/卖出信号?

    我正在尝试用我的脚本实现一些目标 如果前一个信号是 卖出 我只想打印 买入 信号 反之亦然 我只想在小于之前的 卖出 信号时打印 买入 信号 反之亦然 我一整天都在努力寻找这个问题的解决方案 我不明白如何使用 valuewhen 或 bar