Автор |
Сообщение |
roma095
Зарегистрирован: 02.02.2012
Сообщения: 170
|
Всем привет. Подскажите пожалуйста как решить задачу:
Есть условно система:
buy=c>o;
sell=c>ref(close,-1)
short=c<o;
cover=open<ref(open,-1);
И если возможно еще чтобы при при стоплосе 0 записать
Мне нужно, что бы я бросил код с индикатором на график и у меня на каждый сигнал в текстовик писалось: buy 1, sell 0, short -1, cover 0.
Не дописывался, а просто замещался символ текущей позиции.
Для понимания зачем мне это надо, объясню. Я программулину написал для альфадиректа, которая в зависимости от содержимого текстового файла выполняет команду. Открывает позицию, закрывает все позиции. Соответственно для этого в режиме индикатора мне надо заполнять текстовик.
Спасибо за помощь! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
попробуй:
Код: |
path = "C:\\";
file_name = "supersignal";
fh = fopen( path+file_name+".txt", "w" );
if( fh )
{
if (buy)
{
text = "buy 1";
}
else if (sell)
{
text = "sell 0";
}
else if (short)
{
text = "short -1";
}
else if (cover)
{
text = "cover 0";
}
fputs( text, fh );
fclose( fh );
}
|
стопы сам добавь) |
Последний раз редактировалось: MrDrJOKER (Пт Фев 14, 2014 2:02 pm), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение |
|
roma095
Зарегистрирован: 02.02.2012
Сообщения: 170
|
Ругается везде на цикл
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
roma095 писал(а): |
Ругается везде на цикл
|
Код: |
path = "C:\\";
file_name = "supersignal";
fh = fopen( path+file_name+".txt", "w" );
if( fh )
{
if (buy==1)
{
text = "buy 1";
}
else if (sell==1)
{
text = "sell 0";
}
else if (short==1)
{
text = "short -1";
}
else if (cover==1)
{
text = "cover 0";
}
fputs( text, fh );
fclose( fh );
} |
а так?
edit: на какой цикл? ты всё в цикле писал? ну подобавляй тогда индексы к переменным. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
roma095
Зарегистрирован: 02.02.2012
Сообщения: 170
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Разумеется не сработает так.
Buy это массив а в if() массив нельзя.
Надо либо LastValue(Buy) либо Buy[BarCount - 1] или Buy[BarCount - 2] |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
roma095 писал(а): |
|
Код: |
path = "C:\\";
file_name = "supersignal";
fh = fopen( path+file_name+".txt", "w" );
if( fh )
{
if ( buy[BarCount-1] == 1 )
{
text = "buy 1";
}
else if ( sell[BarCount-1] == 1 )
{
text = "sell 0";
}
else if ( short[BarCount-1] == 1 )
{
text = "short -1";
}
else if ( cover[BarCount-1] == 1 )
{
text = "cover 0";
}
fputs( text, fh );
fclose( fh );
}
|
а так? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
roma095
Зарегистрирован: 02.02.2012
Сообщения: 170
|
не ругается, спасибо. буду тестить |
|
|
Посмотреть профиль Отправить личное сообщение |
|
roma095
Зарегистрирован: 02.02.2012
Сообщения: 170
|
Почему то периодически вылетает с ошибкой
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Попробуй проинициализировать переменную text в начале кода каким-нибудь значением типа "no signal". Скорее всего ошибка когда нет никакого сигнала. И что за ошибка вообще? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
|