Блог им. Alextrade

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

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


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

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

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



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

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



           
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
77 | ★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:
Фото
EUR/GBP: Перейдет ли инициатива к покупателям?
Кросс-курс EUR/GBP протестировал нижнюю границу многомесячного пологого треугольника, а также расположенный чуть ниже уровень поддержки 0.8610....
Фото
Идея в акциях: Совкомбанк
➡️ С 20 июня стартовал выкуп акций Совкомбанка : дочерняя структура «Совкомбанк страхование жизни» будет покупать бумаги материнского...
Фото
Итоги первичных размещений ВДО и некоторых розничных выпусков на 24 июня 2026 г.
Следите за нашими новостями в удобном формате: Telegram , Youtube , RuTube, Smart-lab , ВКонтакте , Сайт
Мой Рюкзак #65: Ставка на энергетический и продовольственный кризис из-за перекрытия проливов
Мой Рюкзак #66: Потрепанная шкура в игре, но есть ли смысл выходить по текущим? Только если ребаланс
Последний раз писал про портфель 3 месяца назад, делал ставку на энергетический и продовольственный кризис из-за перекрытия проливов Ссылка...

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

....все тэги



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