Блог им. Alextrade

Вопрос про Wealth-lab и программирование

Как в wealht-lab можно сделать так, чтобы в неудачных сделках трейлинг- стоп срабатывал на той же свечки, на которой был вход? И чтобы не получалось такого:


Вопрос про Wealth-lab и программирование

 Пытался убрать "+1":

Вопрос про Wealth-lab и программирование



Но почти все сделки стали закрываться на той же свечки, на которой был вход, независимо от размера трейлинг-стопа.

Если кто поможет в решении этой проблемы, буду очень бладарен.



           
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
74 | ★2
9 комментариев
Поймите что значит выражение типа этого:
for(int bar....; bar < Bars.Count; bar++)

И вопрос отпадает сам собой.
У нас цикл перебора свечек из серии. Такой цикл никаких «внутри» свечки не предполагает. Каждый прогон — новый бар.
Fry, мне надо чтобы стоп отсчитывался от максимума этой свечки, а не на следующей свечки. что значит выражение
for(int bar....; bar < Bars.Count; bar++),
если бы я разбирался в программировании, я бы уже что-нибудь придумал
avatar
Bacardi, после входа в сделку сразу делайте SellAtStop
avatar
Вот мой скрипт

fau, using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;

namespace WealthLab.Strategies
{
public class MyStrategy: WealthScript
{
protected override void Execute()
{
PlotSeries(PricePane, Highest.Series(High, 20) >> 1, Color.Red, LineStyle.Solid, 1);
PlotStops();

for(int bar = GetTradingLoopStartBar(21); bar < Bars.Count; bar++)
{
if (IsLastPositionActive)
{
Position p = LastPosition;
if (p.EntrySignal.Contains(«Group1|»))
{
double amount = p.MFEAsOfBar(bar) / p.Shares + p.EntryPrice — 1000;
SellAtTrailingStop(bar + 1, p, amount, «Group1»);
}

}
else
{
BuyAtStop(bar + 1, Highest.Value(bar, High, 20), «Group1|»);

}
}
}
}
}

BuyAtStop-насколько я понял-это и есть вход в сделку.

SellAtStop пытался по разному вписать, но постоянно выдает ошибку, не знаю как вписать туда.
avatar
после BuyAtStop:
SellAtStop(bar+1, LastPosition, price1);

price1 — уровень стопа
avatar
fau,
}
else
{
BuyAtStop(bar + 1, Highest.Value(bar, High, 20), «Group1|»);
SellAtStop(bar + 1, LastPosition, 1000);
}
}
}
}
}

тоже самое что и на рисунке в посте, все равно закрывается только на следующей свечки и просадка идет минус 4500
avatar
Bacardi, попробуй вместо 1000 поставить 137000
avatar
fau, да закрылся на 137000 на этой же свечки, только теперь везде стоп закрывает на 137000, в других местах просадка тоже бывает сильной.
avatar
Bacardi, ну так рассчитывайте стоп аналогично
double amount = p.MFEAsOfBar(bar) / p.Shares + p.EntryPrice — 1000;
avatar

Читайте на SMART-LAB:
Фото
Серебро у важной черты: Медведи выдохлись или просто берут паузу?
Серебро после затяжного падения протестировало пересечение важных технических линий: зоны поддержки, сформированной между горизонталями 61.00 и...
Фото
Идея в акциях: КЦ ИКС 5
КЦ ИКС 5 🛒 Ритейл испытывал давление на фоне жесткой риторики ЦБ, снижающего ставку лишь по 0,5% на последних заседаниях. Очередное...
Акции или облигации: сравниваем бумаги от одного эмитента
Игорь Галактионов У одного и того же эмитента могут быть как акции, так и облигации. Рассказываем, в каких ситуациях лучше выбрать тот или...
Фото
МТС. Отчет МСФО Q1 26г. Прибыль и капекс растут, а что с дивидендами?
Вышли финансовые результаты по МСФО за Q1 2026г. от компании МТС: 👉Выручка — 201,3 млрд руб. (+14,7% г/г) 👉Себестоимость (услуг, товаров...

теги блога Алексей (Bacardi)

....все тэги



UPDONW
Новый дизайн