Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 333

 
evillive:

Пусть гуру отпишутся, нужен ли тут break или нет, а alexey1979621 пусть подумает, там ли эта функция вызываетя?

А ещё, если использовать функцию CountTrades(); так, то это равноценно OrdersTotal(), проще и быстрее.

Я не гуру, но отвечу: пока не встретится break; будут выполняться все case:
 
artmedia70:
Я не гуру, но отвечу: пока не встретится break; будут выполняться все case:

Я про брэйк в функции БУ ващет...
 
Кто-нибудь, пожалуйста, помогите залить котировки ДЦ в терминал. Я почистил папку History, поменял в настройках терминала кол-во отображаемых баров, закачал полную историю по интересующей паре и таймфрейму с узла метастока, скачал файл cvs с сайта финама, захожу в архив котировок, заклпдка импорт, обзор - мой cvs файл-открыть-ок и .... фиг с маслом, а не котировки. Скачал скрипт генерирующий cvs в hst-устанавливаю его на график и ни фига-даже окно с его настройками не высвечивается-подскажите что делать!
 
Ну так кто-то подскажет или нет?
 
Где Вы хвалёные профи? Помогите ламеру !
 
mason:
Где Вы хвалёные профи? Помогите ламеру !

А кто мешает скачать историю по старинке, кнопкой HOME?
 
mason:
Кто-нибудь, пожалуйста, помогите залить котировки ДЦ в терминал. Я почистил папку History, поменял в настройках терминала кол-во отображаемых баров, закачал полную историю по интересующей паре и таймфрейму с узла метастока, скачал файл cvs с сайта финама, захожу в архив котировок, заклпдка импорт, обзор - мой cvs файл-открыть-ок и .... фиг с маслом, а не котировки. Скачал скрипт генерирующий cvs в hst-устанавливаю его на график и ни фига-даже окно с его настройками не высвечивается-подскажите что делать!


А покажите ваш csv файл, если это не секрет большой.
 
niformalka:


Честно говоря не пойму какой смысл в этом коде..... меньше минус ста, зачем тогда <100?
 

Вот элементарная ф-ция выставления отлож. ордеров, параметры не важны, а важно заставить советника (можно использовать имеющийся в нем цикл перебора ордеров) после получения «новой цены» или перебрать, или каким-то иным образом сообразить не наставлять ордера с одной ценой. При этом цикл выставления ордеров не должен останавливаться.

double Dist=10000.0;
string SMB;
double NewPrice;
int i;
int start()
{
RefreshRates();
SMB=Symbol();
{UstanOtlozh();}
}
return(0);
void UstanOtlozh()
{
double OldPrice=WindowPriceOnDropped(); // Здесь брошен скрипт
RefreshRates();
SMB=Symbol();
{
int i=1;
while(i<=OrdersTotal())
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:
if (OrderSymbol()!= SMB) continue; // Не наш фин.инструм.
int Tip=OrderType(); // Тип ордера
if (Tip<2) continue; // Рыночный ордер
double NewPrice=OrderOpenPrice(); // Цена ордера
{
while(NewPrice<=Ask+200*Point||NewPrice>=Ask+50*Point)
{
NewPrice=NewPrice+50*Point;
OrderSend(SMB,OP_BUYSTOP,0.01,NewPrice,3,0,0,NULL,0,CLR_NONE);
if(NewPrice>Ask+200*Point||NewPrice<Ask+50*Point)
break;
}}}}}}
 

II Вот элементарная ф-ция выставления отлож. ордеров, параметры не важны, а важно заставить советника (можно использовать имеющийся в нем цикл перебора ордеров) после получения «новой цены» или перебрать, или каким-то иным образом сообразить не наставлять ордера с одной ценой. При этом цикл выставления ордеров не должен останавливаться. Помогите кто может.

double Dist=10000.0;
string SMB;
double NewPrice;
int i,z;
int start()
{
RefreshRates();
SMB=Symbol();
{UstanOtlozh();}
}
return(0);
void UstanOtlozh()
{
double OldPrice=WindowPriceOnDropped(); // Здесь брошен скрипт
RefreshRates();
SMB=Symbol();
{
int i=1;
while(i<=OrdersTotal())
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:
if (OrderSymbol()!= SMB) continue; // Не наш фин.инструм.
int Tip=OrderType(); // Тип ордера
if (Tip<2) continue; // Рыночный ордер
double NewPrice=OrderOpenPrice(); // Цена ордера
{
while(NewPrice<=Ask+100*Point||NewPrice>=Ask+20*Po int)
{
NewPrice=NewPrice+20*Point;
for(z=0; z<OrdersTotal(); z++)
{
if(OrderSelect(z, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)
{
if (NormalizeDouble(OrderOpenPrice(),Digits)== NormalizeDouble(NewPrice,Digits))
Alert("Ордер с такой ценой уже есть");
break;
}
}
}
OrderSend(SMB,OP_BUYSTOP,0.01,NewPrice,3,0,0,NULL, 0,CLR_NONE);
if(NewPrice>Ask+100*Point||NewPrice<Ask+20*Point)
return;
}}}}}}

Причина обращения: