Блог им. Alextrade

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

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


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

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

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



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

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



           
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
93 | ★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:
Фото
Как для ПО-провайдеров прошел сезон отчетности
Что изменилось для ПО-провайдеров за первое полугодие  С начала 2026 года динамика акций ПО-провайдеров выглядит слабее рынка. Это связано...
Фото
Завтра RENI увеличит свой вес в Индексе МосБиржи
Как сообщалось ранее, Московская биржа по рекомендации Индексного комитета биржи, 18 сентября проводит квартальную ребалансировку индексов, в...
Фото
МТС. Дивидендную политику приняли, но вопросов меньше не стало
Решением Совета директоров ПАО МТС 15 сентября 2026г. (протокол 400) принял Положение о Дивидендной политике МТС. 👉Принимая настоящее...
Фото
Какие бизнесы на Мосбирже смогли успешно "впитать" инфляцию за 10 лет? Часть 2: банки и финансы
Инфляция за 10 лет составила 85% официальная, и около 100% по проверке моей потребительской корзины.  Какие инвестиции в акции, сделанные 10 лет...

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

....все тэги



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