RonnieDubs
Member
- Joined
- Aug 13, 2020
- Posts
- 15
- Likes
- 2
Can anyone assist me... I'm trying to add a Signal to the Fractal study. The study itself already creates an up marker and a down marker. I'm trying to add a signal when these markers show up. The code for the signal is:
package com.motivewave.platform.study.williams;
import java.util.List;
import com.motivewave.platform.sdk.common.DataContext;
import com.motivewave.platform.sdk.common.DataSeries;
import com.motivewave.platform.sdk.common.Defaults;
import com.motivewave.platform.sdk.common.Enums;
import com.motivewave.platform.sdk.common.Enums.Position;
import com.motivewave.platform.sdk.common.Inputs;
import com.motivewave.platform.sdk.common.MarkerInfo;
import com.motivewave.platform.sdk.common.SwingPoint;
import com.motivewave.platform.sdk.common.desc.IntegerDescriptor;
import com.motivewave.platform.sdk.common.desc.MarkerDescriptor;
import com.motivewave.platform.sdk.common.desc.SettingGroup;
import com.motivewave.platform.sdk.common.desc.SettingTab;
import com.motivewave.platform.sdk.common.desc.SettingsDescriptor;
import com.motivewave.platform.sdk.draw.Marker;
import com.motivewave.platform.sdk.study.RuntimeDescriptor;
import com.motivewave.platform.sdk.study.Study;
import com.motivewave.platform.sdk.study.StudyHeader;
/** Fractal (Bill Williams) */
@StudyHeader(
namespace="com.motivewave",
id="FRACTAL",
rb="com.motivewave.platform.study.nls.strings",
name="TITLE_FRACTAL",
desc="DESC_FRACTAL",
menu="MENU_OVERLAY",
menu2="MENU_BILL_WILLIAMS",
overlay=true,
helpLink="http://www.motivewave.com/studies/fractal.htm")
public class Fractal extends Study
{
@Override
public void initialize(Defaults defaults)
{
SettingsDescriptor sd = new SettingsDescriptor();
SettingTab tab = new SettingTab(get("TAB_GENERAL"));
sd.addTab(tab);
setSettingsDescriptor(sd);
SettingGroup inputs = new SettingGroup(get("LBL_INPUTS"));
inputs.addRow(new IntegerDescriptor(Inputs.STRENGTH, get("LBL_STRENGTH"), 2, 1, 999, 1));
tab.addGroup(inputs);
SettingGroup markers = new SettingGroup(get("LBL_MARKERS"));
markers.addRow(new MarkerDescriptor(Inputs.UP_MARKER, get("LBL_UP_MARKER"),
Enums.MarkerType.TRIANGLE, Enums.Size.SMALL, defaults.getGreen(), defaults.getLineColor(), true, true));
markers.addRow(new MarkerDescriptor(Inputs.DOWN_MARKER, get("LBL_DOWN_MARKER"),
Enums.MarkerType.TRIANGLE, Enums.Size.SMALL, defaults.getRed(), defaults.getLineColor(), true, true));
tab.addGroup(markers);
RuntimeDescriptor desc = new RuntimeDescriptor();
desc.setLabelSettings(Inputs.STRENGTH);
setRuntimeDescriptor(desc);
}
@Override
public void onBarClose(DataContext ctx)
{
calculateValues(ctx);
}
@Override
protected void calculateValues(DataContext ctx)
{
DataSeries series = ctx.getDataSeries();
clearFigures();
List<SwingPoint> swingPoints = series.calcSwingPoints(getSettings().getInteger(Inputs.STRENGTH, 2));
// Add the markers
MarkerInfo upMarker = getSettings().getMarker(Inputs.UP_MARKER);
MarkerInfo downMarker = getSettings().getMarker(Inputs.DOWN_MARKER);
swingPoints.forEach(sp -> {
if (sp.isTop() && downMarker.isEnabled()) {
addFigure(new Marker(sp.getCoordinate(), Position.BOTTOM, upMarker));
}
else if (!sp.isTop() && upMarker.isEnabled()) {
addFigure(new Marker(sp.getCoordinate(), Position.TOP, downMarker));
}
});
}
}
package com.motivewave.platform.study.williams;
import java.util.List;
import com.motivewave.platform.sdk.common.DataContext;
import com.motivewave.platform.sdk.common.DataSeries;
import com.motivewave.platform.sdk.common.Defaults;
import com.motivewave.platform.sdk.common.Enums;
import com.motivewave.platform.sdk.common.Enums.Position;
import com.motivewave.platform.sdk.common.Inputs;
import com.motivewave.platform.sdk.common.MarkerInfo;
import com.motivewave.platform.sdk.common.SwingPoint;
import com.motivewave.platform.sdk.common.desc.IntegerDescriptor;
import com.motivewave.platform.sdk.common.desc.MarkerDescriptor;
import com.motivewave.platform.sdk.common.desc.SettingGroup;
import com.motivewave.platform.sdk.common.desc.SettingTab;
import com.motivewave.platform.sdk.common.desc.SettingsDescriptor;
import com.motivewave.platform.sdk.draw.Marker;
import com.motivewave.platform.sdk.study.RuntimeDescriptor;
import com.motivewave.platform.sdk.study.Study;
import com.motivewave.platform.sdk.study.StudyHeader;
/** Fractal (Bill Williams) */
@StudyHeader(
namespace="com.motivewave",
id="FRACTAL",
rb="com.motivewave.platform.study.nls.strings",
name="TITLE_FRACTAL",
desc="DESC_FRACTAL",
menu="MENU_OVERLAY",
menu2="MENU_BILL_WILLIAMS",
overlay=true,
helpLink="http://www.motivewave.com/studies/fractal.htm")
public class Fractal extends Study
{
@Override
public void initialize(Defaults defaults)
{
SettingsDescriptor sd = new SettingsDescriptor();
SettingTab tab = new SettingTab(get("TAB_GENERAL"));
sd.addTab(tab);
setSettingsDescriptor(sd);
SettingGroup inputs = new SettingGroup(get("LBL_INPUTS"));
inputs.addRow(new IntegerDescriptor(Inputs.STRENGTH, get("LBL_STRENGTH"), 2, 1, 999, 1));
tab.addGroup(inputs);
SettingGroup markers = new SettingGroup(get("LBL_MARKERS"));
markers.addRow(new MarkerDescriptor(Inputs.UP_MARKER, get("LBL_UP_MARKER"),
Enums.MarkerType.TRIANGLE, Enums.Size.SMALL, defaults.getGreen(), defaults.getLineColor(), true, true));
markers.addRow(new MarkerDescriptor(Inputs.DOWN_MARKER, get("LBL_DOWN_MARKER"),
Enums.MarkerType.TRIANGLE, Enums.Size.SMALL, defaults.getRed(), defaults.getLineColor(), true, true));
tab.addGroup(markers);
RuntimeDescriptor desc = new RuntimeDescriptor();
desc.setLabelSettings(Inputs.STRENGTH);
setRuntimeDescriptor(desc);
}
@Override
public void onBarClose(DataContext ctx)
{
calculateValues(ctx);
}
@Override
protected void calculateValues(DataContext ctx)
{
DataSeries series = ctx.getDataSeries();
clearFigures();
List<SwingPoint> swingPoints = series.calcSwingPoints(getSettings().getInteger(Inputs.STRENGTH, 2));
// Add the markers
MarkerInfo upMarker = getSettings().getMarker(Inputs.UP_MARKER);
MarkerInfo downMarker = getSettings().getMarker(Inputs.DOWN_MARKER);
swingPoints.forEach(sp -> {
if (sp.isTop() && downMarker.isEnabled()) {
addFigure(new Marker(sp.getCoordinate(), Position.BOTTOM, upMarker));
}
else if (!sp.isTop() && upMarker.isEnabled()) {
addFigure(new Marker(sp.getCoordinate(), Position.TOP, downMarker));
}
});
}
}