Осталося у меня ещё один вопрос, кто сможет помогите разобраться (Где же все специалисты)

 

Собственно стоят отложки, но срабатывают они не синхронно, если цена вверх то один работает, ну и соответственно второй наоборот

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 терминал виснет

 
CrazyGreedBoss:

Собственно стоят отложки, но срабатывают они не синхронно, если цена вверх то один работает, ну и соответственно второй наоборот

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) Для выяснения почему терминал виснет нужен весь программный код, чтоб загрузить в терминал и исследовать. Предварительно обработать стилизатором

 
CrazyGreedBoss:

Собственно стоят отложки, но срабатывают они не синхронно, если цена вверх то один работает, ну и соответственно второй наоборот

В этом коде не видно, по каким ценам устанавливаются Buy Stop и Sell Limit. Если у них в качестве цены открытия указана одна и та же цена, то описанное поведение нормально. Цена срабатывания Buy Stop - Ask, а Sell Limit - Bid.

Чтобы хотя бы в тестере происходило одновременное срабатывание, нужно цену открытия Buy Stop указать на спред выше, чем цена открытия Sell. В реальности же и это не поможет, т. к. спред плавающий. А знать наперед, какой будет спред при подходе к нужному уровню, невозможно.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

И 2 вопрос

В этом условии если убираю Tickets и ставлю OrderTicket() закрываются и BUY и SELL, а с Tickets терминал виснет

Тут нет выбора ордера - OrderSelect. А откуда взято значение Tickets - непонятно. Перед использованием функций типа OrderXXX (OrderTicket(), OrderOpenPrice() и т. п.) нужно предварительно выбрать необходимый ордер из списка функцией OrderSelect().
 
Ihor Herasko:  

- У него вначале написано

if(tip==OP_SELL) {ProfitS+=OrderProfit()+OrderSwap()+OrderCommission(); price_s+=OOPS*lot; LS+=lot; s++; Tickets=OrderTicket();

 
STARIJ:

- У него вначале написано

if(tip==OP_SELL) {ProfitS+=OrderProfit()+OrderSwap()+OrderCommission(); price_s+=OOPS*lot; LS+=lot; s++; Tickets=OrderTicket();

Да, не заметил (плохо, когда несколько операторов пишется в одну строку). Но сути это не меняет: с каким ордером работаем, где OrderSelect()?
 
Ihor Herasko:
Да, не заметил (плохо, когда несколько операторов пишется в одну строку). Но сути это не меняет: с каким ордером работаем, где OrderSelect()?

Разве отсутствие селекта приведет к зависанию?

 
STARIJ:

Разве отсутствие селекта приведет к зависанию?


виснет потому как входит в бесконечный цикл "while"

ну и условия непонятные, двойные.

if(closesell==OrderClose(Tickets,OrderLots(),NormalizeDouble(Ask,Digits),Slippage)==true)

Такой синтаксис не разрешен.

 

МНЕ В ХОДЕ РАБОТЫ НАДО МЕНЯТЬ СКРИНЫ МЕСТАМИ ,ЧТОБЫ УПОРЯДОЧИТЬ  КОЕ ЧТО .тАК ВОТ К ПРИМЕРУ МНЕ НАДО  ПОМЕНЯТЬ МЕСТАМИ ПЕРВЫЙ И ТРЕТИЙ .нО У МЕНЯ ОНИ  СНОВА НА СВОИ МЕСТА СТАОВЯТСЯ .ТАК КАК ЖЕ ПОМЕНЯТЬ МЕСТАМИ СКРИНЫ И ШТОБ ОНИ ОСТАЛИСЬ  НА НОВЫХ МЕСТАХ ПОСЛЕ РОКИРОКИ ВОТ  НА СКРИНЕ 1-2-3 А МНЕ НАДО 1-3-2 ИЛИ  3-2-1 КАК ЭТО ОСУЩЕСТВИТЬ ?

 
Zvezdochet:

МНЕ В ХОДЕ РАБОТЫ НАДО МЕНЯТЬ СКРИНЫ МЕСТАМИ ,ЧТОБЫ УПОРЯДОЧИТЬ  КОЕ ЧТО .тАК ВОТ К ПРИМЕРУ МНЕ НАДО  ПОМЕНЯТЬ МЕСТАМИ ПЕРВЫЙ И ТРЕТИЙ .нО У МЕНЯ ОНИ  СНОВА НА СВОИ МЕСТА СТАОВЯТСЯ .ТАК КАК ЖЕ ПОМЕНЯТЬ МЕСТАМИ СКРИНЫ И ШТОБ ОНИ ОСТАЛИСЬ  НА НОВЫХ МЕСТАХ ПОСЛЕ РОКИРОКИ ВОТ  НА СКРИНЕ 1-2-3 А МНЕ НАДО 1-3-2 ИЛИ  3-2-1 КАК ЭТО ОСУЩЕСТВИТЬ ?


Переименовайте в нужном вам порядке , например "имя..1"  "имя..2" и т.д

 
Alekseu Fedotov:

Переименовайте в нужном вам порядке , например "имя..1"  "имя..2" и т.д

Гениально !!!!!!! Я для эксперементнта вразброс ставил 3 2 1  и они  прыгали в первые ряды  и по порядку !!!!!! СПАСИБАААААААААААААААААААААААААААААА !!!!!!!!!!!!!!!!!!

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