Автор |
Сообщение |
Apple
Зарегистрирован: 24.09.2014
Сообщения: 39
|
Все привет,
Как разделить сигнал для pos==0 и pos>1 ?
Код: |
Pos = 0;
EntryPrice = 0;
Buy = C < WMA( C, 300 ) ;
Sell = C >= WMA( C, 300 );// собственно ами все равно что дальше написано , он тупо исполняет эти сигналы. как оказывать на них влияние?
for ( i = 0; i < BarCount; i++ )
{
if ( Buy[i] AND Pos==0)
{
EntryPrice = BuyPrice[i];
pos == 1; // позиция стала больше нуля, но он продолжает покупать.
}
} |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
Pos = 0;
EntryPrice = 0;
Buy = C < WMA( C, 300 ) ;
Sell = C >= WMA( C, 300 );// собственно ами все равно что дальше написано , он тупо исполняет эти сигналы. как оказывать на них влияние?
for ( i = 0; i < BarCount; i++ )
{
if ( Buy[i] AND Pos==0)
{
EntryPrice = BuyPrice[i];
pos == 1; // позиция стала больше нуля, но он продолжает покупать.
}
else if (pos == 1)
{
Buy[i] = 0;
}
} |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Apple
Зарегистрирован: 24.09.2014
Сообщения: 39
|
000 писал(а): |
Код: |
Pos = 0;
EntryPrice = 0;
Buy = C < WMA( C, 300 ) ;
Sell = C >= WMA( C, 300 );// собственно ами все равно что дальше написано , он тупо исполняет эти сигналы. как оказывать на них влияние?
for ( i = 0; i < BarCount; i++ )
{
if ( Buy[i] AND Pos==0)
{
EntryPrice = BuyPrice[i];
pos == 1; // позиция стала больше нуля, но он продолжает покупать.
}
else if (pos == 1)
{
Buy[i] = 0;
}
} |
|
Олег, спасибо
но он почему-то не видит эту петлю совсем. Что она есть что-нет. После IF-else никаких изменений. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Хм. Естественно. Он все видит.
Только ты накосячил, а я внимание не обратил
EntryPrice = BuyPrice[i];
pos == 1; // позиция стала больше нуля, но он продолжает покупать.
Вот это почему == ?
В общем вот так все работает.
Код: |
Pos = 0;
EntryPrice = 0;
Buy = C < WMA( C, 300 ) ;
Sell = C >= WMA( C, 300 );// собственно ами все равно что дальше написано , он тупо исполняет эти сигналы. как оказывать на них влияние?
for ( i = 0; i < BarCount; i++ )
{
if( Buy[i] AND Pos == 0)
{
EntryPrice = BuyPrice[i];
Pos = 1; // позиция стала больше нуля, но он продолжает покупать.
Buy[i] = 1;
}
else if(Pos == 1)
{
Buy[i] = 0;
if(Sell[i] == 1)
{
pos = 0;
}
}
else if(pos == 0)
{
Sell[i] = 0;
}
}
Plot(C, "", colorBlack, styleCandle);
PlotShapes(Buy * shapeUpArrow, colorGreen, 0, L);
PlotShapes(Sell * shapeDownArrow, colorRed, 0, H); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Apple
Зарегистрирован: 24.09.2014
Сообщения: 39
|
Олег, ты мог бы сказать как работает приказ на покупку.
Например я пишу:
Buy = C < WMA( C, 300 ).
Создается массив из 1 и 0.
Дальше мне нужно сузить условие и я пишу:
for ( i = 0; i < BarCount; i++ )
if{
условие при котором выставлять ордер
}
вопрос: как прописывать сам приказ для ами "покупай"
не могу понять логику как он получает приказ |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Там, где массив Buy == 1 Ами покупает, при условии, что открытой длинной позиции нет.
По цене которая в массиве BuyPrice |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AlexanderIII
Зарегистрирован: 02.11.2014
Сообщения: 11
|
Всем добрый вечер. Хочу реализовать одну идею, я думаю она не нова, ну я в ступоре. Как сделать, чтобы при срабатывании на покупку ( 1), этот сигнал оставался, не смотря на то, что часть условия на покупку уже не выполняется, но и не поступил сигнал Sell(0)
krot=IIf(Ref(ROC(C,15),-2) < Ref(ROC(C,15),-1) AND Ref(EMA(C,20),-1) < EMA(C,20), 1 ,
IIf(Ref(ROC(C,15),-2) > Ref(ROC(C,15),-1) AND Ref(EMA(C,20),-1) > EMA(C,20),-1,
IIf(Ref(ROC(C,15),-2) > Ref(ROC(C,15),-1) OR Ref(ROC(C,15),-2) < Ref(ROC(C,15),-1),0,0)));
При этом Ref(ROC(C,15),-2) > Ref(ROC(C,15),-1) - это Sell (0),
а Ref(ROC(C,15),-2) < Ref(ROC(C,15),-1) - это Cover
Понятно, что ни на всех барах одновременно выполняется условие на покупку (1), но еще и не возникает условие Sell (0), как в этом случае удержать единицу, подскажите пожалуйста |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Удержать сигнал можно функцией Hold() или сделать переключатель Flip( включеие, выключение) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AlexanderIII
Зарегистрирован: 02.11.2014
Сообщения: 11
|
Спасибо за ответ, а можно поподробней, как это прописать, или ссылку какую плиз |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
К сожалению мало что понял из твоего куска кода. Где там сигнал на покупку?
Ну вот тебе пример абстрактный
Код: |
Buy_Cond = Cross(C, MA(C, 10)); // условие покупки действует только на одном баре
Buy_Cond = Hold(Buy_Cond, 10); // теперь это усовие действует еще 10 баров после |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AlexanderIII
Зарегистрирован: 02.11.2014
Сообщения: 11
|
А здесь и нет сигналов на покупку, на основании этого кода в текстовый файл заносится или 1 или 0 или -1, и сдесь хотелось бы создать условие, чтобы он преждевременно после Buy (1) или Short (-1) не отправлял 0, до тех пор пока не поступит четкий Sell или Cover согласно условию, при этом не известно количество баров до появление этих условий, а при использовании hold задается конкретное количество баров, как я понял |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Понятно.
Тогда вопрос. Используются ли в системе ApplyStop() ? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AlexanderIII
Зарегистрирован: 02.11.2014
Сообщения: 11
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
Buy = Cross(C, MA(C, 10));
Sell = Cross(MA(C, 20), C);
pos = Flip(Buy, Sell); // pos будет равен 1 с момента сигнала Buy и до Sell. В остальное время 0 |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AlexanderIII
Зарегистрирован: 02.11.2014
Сообщения: 11
|
Спасибо большое, попробую |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|