Login
Вопрос программистам Wealth-Lab
154
NEW 10.02.10 22:48
мое условие выплняется раньше чем система совершает покупку.
Запускаю отладчик:
LastPositionActive false
вхожу в цыкл,
выполняется условие if not LastPositionActive then,
затем мое условие не выполняется, т.е. функция BuyAtClose(Bar, 'Buy') не выполняется
следующая строка - начало: for Bar := 18 to BarCount - 1 do
LastPositionActive меняется на true Почему?
и потом соответственно начинает выполнятся код на продажу (не совершив покупки)
если запускать без отладчика, то система производит покупки и продажи, но не в тех местах (например: покупка позже, причем на много)
Запускаю отладчик:
LastPositionActive false
вхожу в цыкл,
выполняется условие if not LastPositionActive then,
затем мое условие не выполняется, т.е. функция BuyAtClose(Bar, 'Buy') не выполняется
следующая строка - начало: for Bar := 18 to BarCount - 1 do
LastPositionActive меняется на true Почему?
и потом соответственно начинает выполнятся код на продажу (не совершив покупки)
если запускать без отладчика, то система производит покупки и продажи, но не в тех местах (например: покупка позже, причем на много)
Ufukuro Taschen Online Shop
NEW 22.02.10 16:59
in Antwort KleinesMedchen 10.02.10 22:48
во ... а с чего ты взяла чо эту муть кто-то из здешних прогал?
ты лучше поделись, а работает ли? твоё мнение? можно этим делать деньги?
ты лучше поделись, а работает ли? твоё мнение? можно этим делать деньги?
NEW 24.02.10 22:22
in Antwort Заратустра 22.02.10 16:59
деньги можно и ломом делать. А вообще: если есть какие-то закономерности в движениях графика, то их анализ можно запрограммировать (для удобства, т.е. чтобы руками не вычерчивать)
И будет система работать или нет, думаю, зависит от индивидуальных предпочтений, опыта и уверенности в принятых решениях
И будет система работать или нет, думаю, зависит от индивидуальных предпочтений, опыта и уверенности в принятых решениях
Ufukuro Taschen Online Shop
NEW 28.02.10 20:25
in Antwort KleinesMedchen 24.02.10 22:22
работы ведутся полным ходом,на следуешей недели скажу о резултатах.вот ждемс.надоело тоже сидеть целыми днями,а в друг?
NEW 28.02.10 22:13
in Antwort kolaider 28.02.10 20:25
NEW 02.03.10 12:11
in Antwort KleinesMedchen 10.02.10 22:48, Zuletzt geändert 02.03.10 12:13 (dyagov)
Если LastPositionActive меняется на true, значит была открыта позиция. У тебя ошибка в коде. Где точно, сказать без кода трудно. Выложи кусок кода, тогда можно поискать ошибку.
P.S. Какой Велс-лаб, третий, четвертый или пятый?
P.S. Какой Велс-лаб, третий, четвертый или пятый?
NEW 02.03.10 21:43
in Antwort dyagov 02.03.10 12:11
в том то и дело что покупки нет. Графики использую недельные: например Газпром (ммвб с 2000 года) программа 3.01 Build 21b кстати часто выдает ошибку и закрывается
вот код, абсолютно стандартный.
var Bar, p: integer;
PlotSeries( SMASeries( #Close, 4 ), 0, #Teal, #Thick );
PlotSeries(SMASeries( #Close, 9 ), 0, #Green, #Thin);
PlotSeries(SMASeries( #Close, 18 ), 0, #Blue, #Thin); //Изначально LastPositionActive false
for Bar := 18 to BarCount - 1 do
begin
if LastPositionActive then
begin
p := LastPosition;
if (SMA(Bar,#Close,4) < SMA(Bar,#Close,9)) and (SMA(Bar,#Close,9) < SMA(Bar,#Close,18)) then
begin
SellAtClose( Bar, p, '' );
end;
end
else
begin
if (SMA(Bar,#Close,4) > SMA(Bar,#Close,9)) and (SMA(Bar,#Close,9) > SMA(Bar,#Close,18)) then //здесь условие не выполняестся, возвращаюсь на начало цикла с LastPositionActive true
begin
BuyAtClose( Bar, '0' );
end;
end;
end;
вот код, абсолютно стандартный.
var Bar, p: integer;
PlotSeries( SMASeries( #Close, 4 ), 0, #Teal, #Thick );
PlotSeries(SMASeries( #Close, 9 ), 0, #Green, #Thin);
PlotSeries(SMASeries( #Close, 18 ), 0, #Blue, #Thin); //Изначально LastPositionActive false
for Bar := 18 to BarCount - 1 do
begin
if LastPositionActive then
begin
p := LastPosition;
if (SMA(Bar,#Close,4) < SMA(Bar,#Close,9)) and (SMA(Bar,#Close,9) < SMA(Bar,#Close,18)) then
begin
SellAtClose( Bar, p, '' );
end;
end
else
begin
if (SMA(Bar,#Close,4) > SMA(Bar,#Close,9)) and (SMA(Bar,#Close,9) > SMA(Bar,#Close,18)) then //здесь условие не выполняестся, возвращаюсь на начало цикла с LastPositionActive true
begin
BuyAtClose( Bar, '0' );
end;
end;
end;
Ufukuro Taschen Online Shop
03.03.10 18:16
in Antwort KleinesMedchen 02.03.10 21:43
NEW 03.03.10 19:28
in Antwort dyagov 03.03.10 18:16
вот именно, что все должно работать, а у мнея не работает. там к коду комментарии. аномальные явления - покупка не осуществляется, а значение флажка труе. что за глюк
Ufukuro Taschen Online Shop
NEW 05.03.10 21:40
in Antwort KleinesMedchen 28.02.10 22:13
ПРИВЕТ НЕ я тока МТ 4 познаю как програмки туда вставлять ,оказывается большие возможность есть у программы ну вот на пересичения МА мне дали и я даю...........extern int F = 12; //период быстрой МА
extern int S = 61; //период медл.МА
extern int SL = 40; // стоп ордера в пп.
extern int TP = 30; // тейк ордера в пп.
extern double Lots = 0.1; // лот ордера
extern int Time1 = 11; // Время начала работы советника
extern int Time2 = 21; // Время окончания роботы советника
int Slippage = 3; // проскальзывание в пп.
int Magic = 123; // магический номер эксперта
string com = "эксперт"; // комментарий ордера
double stop; // задаем переменную она будет обозначать уровень стоплосса - нецелое число, поэтому double
double take; // задаем переменную она будет обозначать уровень тейкпрофита - нецелое число, поэтому double
double price; // эта переменная - цена, куда мы поставим ордер
int ticketsell; // тикет ордера - он будет играть роль уже известного нам "флажка"
int ticketbuy;
int start()
{
// проверим, время ли работать ? или не время ?
if ( Hour() < Time1 || Hour() > Time2 ) // до Time1 часов и после Time2 часа не работаем ...
return(0); // ничего не происходит, так как выполнение кода возвращается опять к началу к слову "start()"
// расчет скользящих средних :
// значение быстрой МА один бар назад, то есть по закрытому, а не текущему бару смотрим
double MAfast = iMA(NULL,0,F,0,MODE_SMA,PRICE_CLOSE,1);
// значение медленной МА один бар назад...
double MAslow = iMA(NULL,0,S,0,MODE_SMA,PRICE_CLOSE,1);
// ордера с тикетом ticketsell в терминале нету ИЛИ он закрылся И быстрая МА ниже медленной, продаем !
if ( (OrderSelect(ticketsell,SELECT_BY_TICKET,MODE_TRADES) == false || OrderCloseTime() > 0 ) && MAfast < MAslow )
{
ГОСПОДИН К. МОРЖОВ дает .спасибо ему.
extern int S = 61; //период медл.МА
extern int SL = 40; // стоп ордера в пп.
extern int TP = 30; // тейк ордера в пп.
extern double Lots = 0.1; // лот ордера
extern int Time1 = 11; // Время начала работы советника
extern int Time2 = 21; // Время окончания роботы советника
int Slippage = 3; // проскальзывание в пп.
int Magic = 123; // магический номер эксперта
string com = "эксперт"; // комментарий ордера
double stop; // задаем переменную она будет обозначать уровень стоплосса - нецелое число, поэтому double
double take; // задаем переменную она будет обозначать уровень тейкпрофита - нецелое число, поэтому double
double price; // эта переменная - цена, куда мы поставим ордер
int ticketsell; // тикет ордера - он будет играть роль уже известного нам "флажка"
int ticketbuy;
int start()
{
// проверим, время ли работать ? или не время ?
if ( Hour() < Time1 || Hour() > Time2 ) // до Time1 часов и после Time2 часа не работаем ...
return(0); // ничего не происходит, так как выполнение кода возвращается опять к началу к слову "start()"
// расчет скользящих средних :
// значение быстрой МА один бар назад, то есть по закрытому, а не текущему бару смотрим
double MAfast = iMA(NULL,0,F,0,MODE_SMA,PRICE_CLOSE,1);
// значение медленной МА один бар назад...
double MAslow = iMA(NULL,0,S,0,MODE_SMA,PRICE_CLOSE,1);
// ордера с тикетом ticketsell в терминале нету ИЛИ он закрылся И быстрая МА ниже медленной, продаем !
if ( (OrderSelect(ticketsell,SELECT_BY_TICKET,MODE_TRADES) == false || OrderCloseTime() > 0 ) && MAfast < MAslow )
{
ГОСПОДИН К. МОРЖОВ дает .спасибо ему.
NEW 05.03.10 21:43
in Antwort kolaider 05.03.10 21:40
седня открыл для себя в его архиве вот такой советник,работает класно.Предположим, цена в процессе дневного хода прошла значительно вверх, и Вы, рассчитывая на разворот и поход вниз, совершаете сделку бай.
Но вдруг цена пойдет дальше вверх на 10, а может на 30 или 70 пунктов ?
Можно, конечно, не входить в рынок сразу, а выставить отложенный сэллстоп на каком-то расстоянии выше текущей цены, тогда, если разворот произойдет, Ваш ордер сработает.
Допустим Вы так и сделали, цена пошла дальше вверх и Вы переставляете сэллстоп пониже, чтобы при развороте купить по лучшей цене. Но вот Вы отлучились на минутку налить себе чаю, цена быстро скакнула на 50 пп выше и таки развернула вниз, а сэллстоп пониже Вы не успели переставить, следовательно, упустили более выгодную цену.
Данный советник выставлет сэллстоп на заданном расстоянии в пунктах от текущей цены, а если цена продолжает ползти вниз, за ней ползет и Ваш отложенный ордер, тем самым обеспечивая Вам более выгодную цену покупки.
При этом работу эксперта Вы можете наблюдать визуально, выставленный ордер изображается на графике пары красным кружочком, а при каждом переставлении повыше вслед за ценой – оранжевым кружочком. Кроме того, во вкладке «эксперты» Метатрейдера при каждой модификации ордера появляется сообщение типа «переставили выше от начального на столько-то пунктов». Здесь то Вы и увидите выгоду эксперта, когда Вы сначала хотели купить с рынка от какого-то уровня, а в результате эксперт позволил Вам купить на 30-40 пунктов дешевле.
Но вдруг цена пойдет дальше вверх на 10, а может на 30 или 70 пунктов ?
Можно, конечно, не входить в рынок сразу, а выставить отложенный сэллстоп на каком-то расстоянии выше текущей цены, тогда, если разворот произойдет, Ваш ордер сработает.
Допустим Вы так и сделали, цена пошла дальше вверх и Вы переставляете сэллстоп пониже, чтобы при развороте купить по лучшей цене. Но вот Вы отлучились на минутку налить себе чаю, цена быстро скакнула на 50 пп выше и таки развернула вниз, а сэллстоп пониже Вы не успели переставить, следовательно, упустили более выгодную цену.
Данный советник выставлет сэллстоп на заданном расстоянии в пунктах от текущей цены, а если цена продолжает ползти вниз, за ней ползет и Ваш отложенный ордер, тем самым обеспечивая Вам более выгодную цену покупки.
При этом работу эксперта Вы можете наблюдать визуально, выставленный ордер изображается на графике пары красным кружочком, а при каждом переставлении повыше вслед за ценой – оранжевым кружочком. Кроме того, во вкладке «эксперты» Метатрейдера при каждой модификации ордера появляется сообщение типа «переставили выше от начального на столько-то пунктов». Здесь то Вы и увидите выгоду эксперта, когда Вы сначала хотели купить с рынка от какого-то уровня, а в результате эксперт позволил Вам купить на 30-40 пунктов дешевле.
NEW 06.03.10 11:20
in Antwort kolaider 05.03.10 21:43
NEW 08.03.10 14:26
что такое мусорные стоки?
in Antwort dyagov 06.03.10 11:20
В ответ на:
Проблема там что торговля идет на мусорных стоках
Проблема там что торговля идет на мусорных стоках
что такое мусорные стоки?
Ufukuro Taschen Online Shop
NEW 08.03.10 14:43
in Antwort kolaider 05.03.10 21:43
такая торговля не для меня :) торговать в течении дня - это цу штрессиг.
Ufukuro Taschen Online Shop
NEW 08.03.10 15:13
in Antwort KleinesMedchen 08.03.10 14:26
NEW 11.03.10 11:07
Подборка пар для хэджирования с рекомендациями
EUR/USD+ USD/CHF
Соотношение лотов: 1.0/1.0 – 1.1
Операции: Buy + Buy или Sell + Sell
Рекомендвции: Потерь на свопах будет меньше, если Buy+Buy
EUR/AUD+AUD/CHF
Соотношение лотов: 1.0/1.1 – 1.8
Операции: Buy + Buy или Sell + Sell
Рекомендвции: Большой разброс в величине лотов по AUD/ CHF. EUR/AUD стоит дороже и ходит больше. При 1.0/1.32 в покупку – суммарный своп нейтральный.
EUR/CAD+CAD/CHF
Соотношение лотов: 1.0/1.25
Операции: Buy + Buy или Sell + Sell
Рекомендвции: Из-за свопов лучше всегда покупать. При данном соотношении суммарный своп положительный.
EUR/JPY+ CHF/JPY
Соотношение лотов: 1.0/2.2 – 2.56
Операции: Buy + Sell или Sell + Buy
Рекомендвции: Так как по EUR/JPY свопы в два раза больше, то она и растёт быстрее. Оптимальное соотношение 1.0/2.35.
GBP/ JPY + EUR/JPY
Соотношение лотов: 1.0/1.48 – 1.6
Операции: Buy + Sell или Sell + Buy
Рекомендвции: Из-за свопов GBP/ JPY лучше покупать.
Если GBP/ JPY растёт, то по евро 1.48. Если GBP/ JPY падает, то 1.6.
in Antwort dyagov 08.03.10 15:13
Подборка пар для хэджирования с рекомендациями
EUR/USD+ USD/CHF
Соотношение лотов: 1.0/1.0 – 1.1
Операции: Buy + Buy или Sell + Sell
Рекомендвции: Потерь на свопах будет меньше, если Buy+Buy
EUR/AUD+AUD/CHF
Соотношение лотов: 1.0/1.1 – 1.8
Операции: Buy + Buy или Sell + Sell
Рекомендвции: Большой разброс в величине лотов по AUD/ CHF. EUR/AUD стоит дороже и ходит больше. При 1.0/1.32 в покупку – суммарный своп нейтральный.
EUR/CAD+CAD/CHF
Соотношение лотов: 1.0/1.25
Операции: Buy + Buy или Sell + Sell
Рекомендвции: Из-за свопов лучше всегда покупать. При данном соотношении суммарный своп положительный.
EUR/JPY+ CHF/JPY
Соотношение лотов: 1.0/2.2 – 2.56
Операции: Buy + Sell или Sell + Buy
Рекомендвции: Так как по EUR/JPY свопы в два раза больше, то она и растёт быстрее. Оптимальное соотношение 1.0/2.35.
GBP/ JPY + EUR/JPY
Соотношение лотов: 1.0/1.48 – 1.6
Операции: Buy + Sell или Sell + Buy
Рекомендвции: Из-за свопов GBP/ JPY лучше покупать.
Если GBP/ JPY растёт, то по евро 1.48. Если GBP/ JPY падает, то 1.6.