Собственно стоят отложки, но срабатывают они не синхронно, если цена вверх то один работает, ну и соответственно второй наоборот
if(bs==0)
{
OOPB=0;
bs=OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(Ask+DeltaStop*Point,Digits),Slippage,0,0,"BUYSTOP",Magic,0,clrGreen);
ObjectsDeleteAll(0,"#",0, OBJ_ARROW);
}
if(ss==0)
{
OOPS=0;
ss=OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(Bid-DeltaStop*Point,Digits),Slippage,0,0,"SELLSTOP",Magic,0);
ObjectsDeleteAll(0,"#",0, OBJ_ARROW);
}
И 2 вопрос
В этом условии если убираю Tickets и ставлю OrderTicket() закрываются и BUY и SELL, а с Tickets терминал виснет
1) Для синхронного срабатывания выше цены ASK расположить 2 отложки: Buy Stop и Sell Limit. Ниже цены Bid соответственно Sell Stop и Buy Limit. Использую это для анализа причин и величины проскальзывания, достаточной для получения устойчивого профита.
2) Для выяснения почему терминал виснет нужен весь программный код, чтоб загрузить в терминал и исследовать. Предварительно обработать стилизатором
Собственно стоят отложки, но срабатывают они не синхронно, если цена вверх то один работает, ну и соответственно второй наоборот
В этом коде не видно, по каким ценам устанавливаются Buy Stop и Sell Limit. Если у них в качестве цены открытия указана одна и та же цена, то описанное поведение нормально. Цена срабатывания Buy Stop - Ask, а Sell Limit - Bid.
Чтобы хотя бы в тестере происходило одновременное срабатывание, нужно цену открытия Buy Stop указать на спред выше, чем цена открытия Sell. В реальности же и это не поможет, т. к. спред плавающий. А знать наперед, какой будет спред при подходе к нужному уровню, невозможно.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
И 2 вопрос
В этом условии если убираю Tickets и ставлю OrderTicket() закрываются и BUY и SELL, а с Tickets терминал виснет
- У него вначале написано
if(tip==OP_SELL) {ProfitS+=OrderProfit()+OrderSwap()+OrderCommission(); price_s+=OOPS*lot; LS+=lot; s++; Tickets=OrderTicket();
- У него вначале написано
if(tip==OP_SELL) {ProfitS+=OrderProfit()+OrderSwap()+OrderCommission(); price_s+=OOPS*lot; LS+=lot; s++; Tickets=OrderTicket();
Да, не заметил (плохо, когда несколько операторов пишется в одну строку). Но сути это не меняет: с каким ордером работаем, где OrderSelect()?
Разве отсутствие селекта приведет к зависанию?
Разве отсутствие селекта приведет к зависанию?
виснет потому как входит в бесконечный цикл "while"
ну и условия непонятные, двойные.
if(closesell==OrderClose(Tickets,OrderLots(),NormalizeDouble(Ask,Digits),Slippage)==true)
Такой синтаксис не разрешен.
МНЕ В ХОДЕ РАБОТЫ НАДО МЕНЯТЬ СКРИНЫ МЕСТАМИ ,ЧТОБЫ УПОРЯДОЧИТЬ КОЕ ЧТО .тАК ВОТ К ПРИМЕРУ МНЕ НАДО ПОМЕНЯТЬ МЕСТАМИ ПЕРВЫЙ И ТРЕТИЙ .нО У МЕНЯ ОНИ СНОВА НА СВОИ МЕСТА СТАОВЯТСЯ .ТАК КАК ЖЕ ПОМЕНЯТЬ МЕСТАМИ СКРИНЫ И ШТОБ ОНИ ОСТАЛИСЬ НА НОВЫХ МЕСТАХ ПОСЛЕ РОКИРОКИ ВОТ НА СКРИНЕ 1-2-3 А МНЕ НАДО 1-3-2 ИЛИ 3-2-1 КАК ЭТО ОСУЩЕСТВИТЬ ?
МНЕ В ХОДЕ РАБОТЫ НАДО МЕНЯТЬ СКРИНЫ МЕСТАМИ ,ЧТОБЫ УПОРЯДОЧИТЬ КОЕ ЧТО .тАК ВОТ К ПРИМЕРУ МНЕ НАДО ПОМЕНЯТЬ МЕСТАМИ ПЕРВЫЙ И ТРЕТИЙ .нО У МЕНЯ ОНИ СНОВА НА СВОИ МЕСТА СТАОВЯТСЯ .ТАК КАК ЖЕ ПОМЕНЯТЬ МЕСТАМИ СКРИНЫ И ШТОБ ОНИ ОСТАЛИСЬ НА НОВЫХ МЕСТАХ ПОСЛЕ РОКИРОКИ ВОТ НА СКРИНЕ 1-2-3 А МНЕ НАДО 1-3-2 ИЛИ 3-2-1 КАК ЭТО ОСУЩЕСТВИТЬ ?
Переименовайте в нужном вам порядке , например "имя..1" "имя..2" и т.д
Переименовайте в нужном вам порядке , например "имя..1" "имя..2" и т.д
Гениально !!!!!!! Я для эксперементнта вразброс ставил 3 2 1 и они прыгали в первые ряды и по порядку !!!!!! СПАСИБАААААААААААААААААААААААААААААА !!!!!!!!!!!!!!!!!!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Собственно стоят отложки, но срабатывают они не синхронно, если цена вверх то один работает, ну и соответственно второй наоборот
if(bs==1)
{
if(OOPBS>Ask+DeltaStop*Point)
{
OOPBS=Ask+DeltaStop*Point;
bool bsm=OrderModify(Ticketbs,OOPBS,OrderStopLoss(),OrderTakeProfit(),0,clrGoldenrod);
// DrawLABEL(1,"Allbs",StringConcatenate(OOPBS," OOPBS ",Bid," Bid ",DeltaStop," DeltaStop ",bsm," bsm "),10,10,clrRed);
}
}
if(ss==1)
{
if(OOPSS<Bid-DeltaStop*Point)
{
OOPSS=Bid-DeltaStop*Point;
bool ssm=OrderModify(Ticketss,OOPSS,OrderStopLoss(),OrderTakeProfit(),0,Red);
// DrawLABEL(1,"Allbs",StringConcatenate(OOPBS," OOPBS ",Bid," Bid ",DeltaStop," DeltaStop ",bsm," bsm "),10,10,clrRed);
}
}
if(bs==0)
{
OOPB=0;
bs=OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(Ask+DeltaStop*Point,Digits),Slippage,0,0,"BUYSTOP",Magic,0,clrGreen);
ObjectsDeleteAll(0,"#",0, OBJ_ARROW);
}
if(ss==0)
{
OOPS=0;
ss=OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(Bid-DeltaStop*Point,Digits),Slippage,0,0,"SELLSTOP",Magic,0);
ObjectsDeleteAll(0,"#",0, OBJ_ARROW);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
И 2 вопрос
if(tip==OP_SELL) {ProfitS+=OrderProfit()+OrderSwap()+OrderCommission(); price_s+=OOPS*lot; LS+=lot; s++; Tickets=OrderTicket();
if(ProfitS>ProfitSMax)
{
ProfitSMax=ProfitS;ProfitSMaxpr=ProfitSMax*Procent;
if(ProfitSMax>=ProfitSMaxpr+step)
{
while(!closesell && !IsStopped() && !NO_SELL())
if(closesell==OrderClose(Tickets,OrderLots(),NormalizeDouble(Ask,Digits),Slippage)==true)
if(!NO_SELL()){closesell=false;break;}
}}
if(OrdersTotal()==0) ProfitSMax=0;
}
В этом условии если убираю Tickets и ставлю OrderTicket() закрываются и BUY и SELL, а с Tickets терминал виснет