Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Как разделить сигнал для pos==0 и pos>1 ? Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Apple



Зарегистрирован: 24.09.2014
Сообщения: 39

СообщениеДобавлено: Пн Сен 29, 2014 3:47 pm Ответить с цитатой Вернуться к началу

Все привет,

Как разделить сигнал для 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

СообщениеДобавлено: Пн Сен 29, 2014 5:59 pm Ответить с цитатой Вернуться к началу

Код:
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

СообщениеДобавлено: Пн Сен 29, 2014 7:12 pm Ответить с цитатой Вернуться к началу

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

СообщениеДобавлено: Пн Сен 29, 2014 10:31 pm Ответить с цитатой Вернуться к началу

Хм. Естественно. Он все видит.
Только ты накосячил, а я внимание не обратил
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

СообщениеДобавлено: Пн Окт 06, 2014 9:53 pm Ответить с цитатой Вернуться к началу

Олег, ты мог бы сказать как работает приказ на покупку.

Например я пишу:

Buy = C < WMA( C, 300 ).

Создается массив из 1 и 0.

Дальше мне нужно сузить условие и я пишу:

for ( i = 0; i < BarCount; i++ )
if{

условие при котором выставлять ордер

}
вопрос: как прописывать сам приказ для ами "покупай"
не могу понять логику как он получает приказ
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Окт 06, 2014 10:37 pm Ответить с цитатой Вернуться к началу

Там, где массив Buy == 1 Ами покупает, при условии, что открытой длинной позиции нет.
По цене которая в массиве BuyPrice

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
AlexanderIII



Зарегистрирован: 02.11.2014
Сообщения: 11

СообщениеДобавлено: Чт Ноя 13, 2014 11:00 pm Ответить с цитатой Вернуться к началу

Всем добрый вечер. Хочу реализовать одну идею, я думаю она не нова, ну я в ступоре. Как сделать, чтобы при срабатывании на покупку ( 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

СообщениеДобавлено: Чт Ноя 13, 2014 11:18 pm Ответить с цитатой Вернуться к началу

Удержать сигнал можно функцией Hold() или сделать переключатель Flip( включеие, выключение)

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
AlexanderIII



Зарегистрирован: 02.11.2014
Сообщения: 11

СообщениеДобавлено: Чт Ноя 13, 2014 11:36 pm Ответить с цитатой Вернуться к началу

Спасибо за ответ, а можно поподробней, как это прописать, или ссылку какую плиз
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Ноя 13, 2014 11:58 pm Ответить с цитатой Вернуться к началу

К сожалению мало что понял из твоего куска кода. Где там сигнал на покупку?

Ну вот тебе пример абстрактный
Код:
Buy_Cond = Cross(C, MA(C, 10)); // условие покупки действует только на одном баре
Buy_Cond = Hold(Buy_Cond, 10); // теперь это усовие действует еще 10 баров после

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
AlexanderIII



Зарегистрирован: 02.11.2014
Сообщения: 11

СообщениеДобавлено: Пт Ноя 14, 2014 12:11 am Ответить с цитатой Вернуться к началу

А здесь и нет сигналов на покупку, на основании этого кода в текстовый файл заносится или 1 или 0 или -1, и сдесь хотелось бы создать условие, чтобы он преждевременно после Buy (1) или Short (-1) не отправлял 0, до тех пор пока не поступит четкий Sell или Cover согласно условию, при этом не известно количество баров до появление этих условий, а при использовании hold задается конкретное количество баров, как я понял
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Ноя 14, 2014 12:31 am Ответить с цитатой Вернуться к началу

Понятно.
Тогда вопрос. Используются ли в системе ApplyStop() ?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
AlexanderIII



Зарегистрирован: 02.11.2014
Сообщения: 11

СообщениеДобавлено: Пт Ноя 14, 2014 12:42 am Ответить с цитатой Вернуться к началу

Нет
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Ноя 14, 2014 1:05 am Ответить с цитатой Вернуться к началу

Код:
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

СообщениеДобавлено: Пт Ноя 14, 2014 6:36 am Ответить с цитатой Вернуться к началу

Спасибо большое, попробую
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen