[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 219

 
DanLett :

다음과 같은 경우 어떻게 해야 하는지 알려주세요.

테스터의 EA는 정상적으로 작동하고 모든 것이 계획대로 진행되지만 실제 세계에서 거래를 열지 않습니다.

PS Ohn은 삶과 죽음의 문제에 도움이 필요합니다

고문은 거래가 허용됩니까?
 
DanLett :

다음과 같은 경우 어떻게 해야 하는지 알려주세요.

테스터의 EA는 정상적으로 작동하고 모든 것이 계획대로 진행되지만 실제 세계에서는 거래가 열리지 않습니다.

PS Ohn은 삶과 죽음의 문제, 도움이 필요합니다


나는 전문가가 아닙니다. 여기에 문제가 있습니까?

ОrderSelect(i,SELECT_BY_POS,MODE_TRADES)
MODE_TRADES로 대체?
 

내 수학이 어때서?

 int modOrder()
{
double currentPrice = Bid;
double currentStoploss = OrderStopLoss ();
double profitLine=profitLine();
if (currentPrice >= profitLine)
  {
   OrderModify (getTicket(), 0 ,currentStoploss+ 1 * Point , 0 , 0 , Blue );
  }
   Alert ( "profit line " , profitLine);
   return ( 0 );
}

내 생각에 currentPrice >= 이익선은 이익선 == 또는 >인 경우 맞습니까?

그러나 현재는 > 적어도 하나의 포인트인 경우 저에게 효과적입니다.

 
엄격한 평등을 위해 실수(더블)를 비교하는 것은 그들과 할 수 있는 최선이 아닙니다. 그 차이를 최대 허용 값과 비교하는 것이 더 정확할 것입니다.
 
olis : 내 수학에 무슨 문제가 있어?
FAQ 를 보셨나요 ?
 

글쎄, 네 ... 나는 생각하지 않았습니다. 고맙습니다.
 
Gek34 :

친애하는 전문가 여러분, 지표에 대한 질문을 제거했습니다. 결정은 예기치 않게 나왔고 계산을 복제했으며 죄송합니다. .... 모든 것이 작동했습니다.

그러나 그것이 어떻게 일어났는지 또 다른 것이 있었습니다. 나는 이해하고 싶습니다. 나는 코드를 첨부하고 있습니다 :

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Yellow

extern int PerMa = 5;
extern int Shift = 0;
extern int Step = 15;

double ABuf45[],ABuf[],ABuf5[],ABuf15[];//,Stark[];
double Stark;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{ Stark=0;
//---- indicators
// IndicatorBuffers(4);

SetIndexBuffer(0,ABuf);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int i,n;

//----
i=Bars-counted_bars-1;

while(i>=0)
{ RefreshRates();
//----
double Ma15=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,i);
double Ma45=iMA(NULL,0,50,0,MODE_EMA,PRICE_CLOSE,i);
double Ma=iMA(NULL,0,PerMa,0,MODE_EMA,PRICE_CLOSE,i);
//double Ma1=iMA(NULL,0,PerMa,Shift,MODE_EMA,PRICE_CLOSE,i+1);
if(Ma>Stark+Step*Point&&Ma15>Ma45){Stark=Ma;}
if(Ma<Stark-Step*Point&&Ma15<Ma45){Stark=Ma;}//else{Stark=Stark;}
ABuf[i+Shift]=Stark;Comment(Stark);
if(Ma>Stark+Step*Point&&Ma15>Ma45){Stark=Ma;}//else{Stark=Stark;}
if(Ma<Stark-Step*Point&&Ma15<Ma45){Stark=Ma;}//else{Stark=Stark;}
ABuf[i+Shift]=Stark;//Comment(Stark);

//----
i--;
}
return(0);
}


나는 질문을 제거한다. Ponavymymyval 모든 넌센스. 모든 것이 훨씬 쉬워졌습니다. 모든 틱 에서 0으로 재설정되지 않도록 시작 기능에서 Stark 변수를 제거했습니다.
 

"sig1" 신호 가 주어지면 BUY 명령이 트리거되고 보류 중인 SELLSTOP 주문이 BUY 주문 아래에 배치됩니다.

BUY 포지션을 청산 하면 SELLSTOP도 삭제됩니다.

하지만 이 BAY가 닫히지 않고 다음 BUY와 다음 등이 열리면 어떻게 해야 할까요?

먼저 설정된 이 SELLSTOP은 첫 번째 BUY가 이미 종료된 후 종료하려면 어떻게든 계산해야 합니다.

또한, 가격이 보류 중인 가격을 돌파한 후 손실 없이 마감되면 보류 중인 가격은 전임자와 동일한 위치에 정산됩니다.

------------------------------------

셀스톱 마술사인 구매에게 티켓을 할당하는 것은 문제를 해결하지 못할 것입니다. 셀이 닫힌 후 새 셀이 열리고 다른 마법으로 셀 결과적으로 삭제됩니다.

만의 폐쇄 후 나는 방법을 모릅니다.

 int i, k= OrdersTotal (),ti;
     for (i= 0 ; i<k; i++){
   if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)){
     if ( OrderType ()== OP_SELLSTOP){
    ti = OrderMagicNumber ();  }
     if ( OrderType ()== OP_BUY)
     if ( OrderTicket ()==ti) что дальше не пойму, как узнать о наличии ордера бай с нужным тикетом?

 
Top2n :

"sig1" 신호 가 주어지면 BUY 명령이 트리거되고 보류 중인 SELLSTOP 주문이 BUY 주문 아래에 배치됩니다.

BUY 포지션을 청산하면 SELLSTOP도 삭제됩니다.

하지만 이 BAY가 닫히지 않고 다음 BUY와 다음 등이 열리면 어떻게 해야 할까요?

먼저 설정된 이 SELLSTOP은 첫 번째 BUY가 이미 종료된 후 종료하려면 어떻게든 계산해야 합니다.

또한, 가격이 보류 중인 가격을 돌파한 후 손실 없이 마감되면 보류 중인 가격은 전임자와 동일한 위치에 정산됩니다.

------------------------------------

셀스톱 마술사인 구매에게 티켓을 할당하는 것은 문제를 해결하지 못할 것입니다. 셀이 닫힌 후 새 셀이 열리고 다른 마법으로 셀 결과적으로 삭제됩니다.

만의 폐쇄 후 나는 방법을 모릅니다.


글쎄, 네 .. 당신은 동일한 선택 ...

 int i, k= OrdersTotal (), ti, tid;

for (i= 0 ; i<k; i++){
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
       if ( OrderType ()== OP_SELLSTOP) {
          tid = OrderTicket(); // запомним тикет ордера селлстоп - если его придётся удалить...
          ti = OrderMagicNumber ();  
          //  ищем ордер по тикету
          if (OrderSelect(ti, SELECT_BY_TICKET)==true) {
             // проверяем Закрылся ли этот ордер - это твоя Байка
             if (OrderCloseTime() > 0) {
                //  удаляем ордер Селлстоп - если связанная с ним байка Закрылась...
                OrderDelete(tid);
             }
          } 
       }
    }
}
 
당신이 발견에 대해 더 현명한 것... 당신이 쓰레기를 하고 있다고 믿으십시오... 시간을 낭비하지 마십시오... 당신의 마틴게일은 그렇게 쉽게 작동하지 않을 것입니다...