Всем привет. Ниже выложен элементарный урывок программы, который у меня не получается довести до конца. Мне нужно сделать так, чтобы он перед тем как ставить новый ордер проверял есть ли в том месте (с такой же ценой) другой орден, если есть, то пропустить, если нету – ставить. А то он у меня наставит ордеров до заданной границы, а потом по втором, по третьем кругу выставляет. Для запуска ставите на автомат, ставите бай стоп, и увидите результат. Если кто сможет дописать, пожалуйста, не поленитесь. Когда все получится – вознаграждение обязательно!!!
extern double Lot=0.01; extern bool Ustan_BuyStop=true; extern bool Ustan_SellStop=true; double Dist=10000.0; string SMB; double NewPrice,SL,TP; int i,z; int start() { RefreshRates(); SMB=Symbol(); if(Ustan_BuyStop || Ustan_SellStop) {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 Price=OrderOpenPrice(); { NewPrice=Price; while(NewPrice<=Ask+300*Point||NewPrice>=Ask+20*Po int) { NewPrice=NewPrice+20*Point; SL=NewPrice-20*Point; TP=NewPrice+20*Point; OrderSend(SMB,OP_BUYSTOP,Lot,NewPrice,3,SL,TP,NULL,0,CLR_NONE); if(NewPrice>Ask+300*Point||NewPrice<Ask+20*Point) return; }} } } } }
Melko: Всем привет. Ниже выложен элементарный урывок программы, который у меня не получается довести до конца. Мне нужно сделать так, чтобы он перед тем как ставить новый ордер проверял есть ли в том месте (с такой же ценой) другой орден, если есть, то пропустить, если нету – ставить. А то он у меня наставит ордеров до заданной границы, а потом по втором, по третьем кругу выставляет. Для запуска ставите на автомат, ставите бай стоп, и увидите результат. Если кто сможет дописать, пожалуйста, не поленитесь. Когда все получится – вознаграждение обязательно!!!
extern double Lot=0.01; extern bool Ustan_BuyStop=true; extern bool Ustan_SellStop=true; double Dist=10000.0; string SMB; double NewPrice,SL,TP; int i,z; int start() { RefreshRates(); SMB=Symbol(); if(Ustan_BuyStop || Ustan_SellStop) {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 Price=OrderOpenPrice(); { NewPrice=Price; while(NewPrice<=Ask+300*Point||NewPrice>=Ask+20*Po int) { NewPrice=NewPrice+20*Point; SL=NewPrice-20*Point; TP=NewPrice+20*Point; OrderSend(SMB,OP_BUYSTOP,Lot,NewPrice,3,SL,TP,NULL,0,CLR_NONE); if(NewPrice>Ask+300*Point||NewPrice<Ask+20*Point) return; }} } } } }
Используйте для проверки эту функцию Ким И.В. Также здесь посмотрите, может чего еще подберете...
Вот и еще одна зима прошла-каждый день за компом, 4 год я уже не молодой :D жизнь-время так быстро летит, вспоминаю прошлое-так ярко помню будто недавно учился в школе, будто недавно было 18, епт.ть)
Константин есть вопрос на засыпку - прикрутил советника который ты выложил называется Vse_dlja_sela на центовый счет настройки вроде не плохие подобрал, а он раз и не торгует...
В чем фишка???? Раскажи пожалуйсто ааааааааааааааааааааааааааааааа?
О да, юзай дальше
Спасибо - так и сделаю ....
extern double Lot=0.01;
extern bool Ustan_BuyStop=true;
extern bool Ustan_SellStop=true;
double Dist=10000.0;
string SMB;
double NewPrice,SL,TP;
int i,z;
int start()
{
RefreshRates();
SMB=Symbol();
if(Ustan_BuyStop || Ustan_SellStop) {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 Price=OrderOpenPrice();
{
NewPrice=Price;
while(NewPrice<=Ask+300*Point||NewPrice>=Ask+20*Po int)
{
NewPrice=NewPrice+20*Point;
SL=NewPrice-20*Point;
TP=NewPrice+20*Point;
OrderSend(SMB,OP_BUYSTOP,Lot,NewPrice,3,SL,TP,NULL,0,CLR_NONE);
if(NewPrice>Ask+300*Point||NewPrice<Ask+20*Point)
return;
}}
}
}
}
}
Всем привет. Ниже выложен элементарный урывок программы, который у меня не получается довести до конца. Мне нужно сделать так, чтобы он перед тем как ставить новый ордер проверял есть ли в том месте (с такой же ценой) другой орден, если есть, то пропустить, если нету – ставить. А то он у меня наставит ордеров до заданной границы, а потом по втором, по третьем кругу выставляет. Для запуска ставите на автомат, ставите бай стоп, и увидите результат. Если кто сможет дописать, пожалуйста, не поленитесь. Когда все получится – вознаграждение обязательно!!!
extern double Lot=0.01;
extern bool Ustan_BuyStop=true;
extern bool Ustan_SellStop=true;
double Dist=10000.0;
string SMB;
double NewPrice,SL,TP;
int i,z;
int start()
{
RefreshRates();
SMB=Symbol();
if(Ustan_BuyStop || Ustan_SellStop) {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 Price=OrderOpenPrice();
{
NewPrice=Price;
while(NewPrice<=Ask+300*Point||NewPrice>=Ask+20*Po int)
{
NewPrice=NewPrice+20*Point;
SL=NewPrice-20*Point;
TP=NewPrice+20*Point;
OrderSend(SMB,OP_BUYSTOP,Lot,NewPrice,3,SL,TP,NULL,0,CLR_NONE);
if(NewPrice>Ask+300*Point||NewPrice<Ask+20*Point)
return;
}}
}
}
}
}
Используйте для проверки эту функцию Ким И.В. Также здесь посмотрите, может чего еще подберете...
extern bool Ustan_BuyStop=true;
extern bool Ustan_SellStop=true;
double Dist=10000.0;
string SMB;
double NewPrice,SL,TP;
int i,z;
int start()
{
RefreshRates();
SMB=Symbol();
if(Ustan_BuyStop || Ustan_SellStop) {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 Price=OrderOpenPrice();
{
NewPrice=Price;
while(NewPrice<=Ask+300*Point||NewPrice>=Ask+20*Po int)
{
NewPrice=NewPrice+20*Point;
SL=NewPrice-20*Point;
TP=NewPrice+20*Point;
OrderSend(SMB,OP_BUYSTOP,Lot,NewPrice,3,SL,TP,NULL,0,CLR_NONE);
if(NewPrice>Ask+300*Point||NewPrice<Ask+20*Point)
return;
}}
}
}
}
}
Пришёл, наслежу немного...
Первое что увидел где приращение переменной i в цикле while? тоесть i++
Далее если не поможет, можно более детально разбирать код ;)
moskitman:
P.S. никогда не участвуйте в финансовых пирамидах!
Я посмотрел на сайт-подумал про них стоит или нет и сразу понял, что это не прокатит
как я и говорил лохотрон мм. ну это и так все понимали, очень не долго работал-рухнул :D а развитие про которое все говорили-верили ну смешно)
в Украине провели рейды-омон все закрыли, все заморозили, выплаты не производят ни где
Эх люди в такое верить... лучше на форе посидеть)
Селяне что то совсем все сдались
Вот и еще одна зима прошла-каждый день за компом, 4 год я уже не молодой :D жизнь-время так быстро летит, вспоминаю прошлое-так ярко помню будто недавно учился в школе, будто недавно было 18, епт.ть)
Селяне что то совсем все сдались
Вот и еще одна зима прошла-каждый день за компом, 4 год
Всё будет хорошо.
Константин есть вопрос на засыпку - прикрутил советника который ты выложил называется Vse_dlja_sela на центовый счет настройки вроде не плохие подобрал, а он раз и не торгует...
В чем фишка???? Раскажи пожалуйсто ааааааааааааааааааааааааааааааа?