포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 1008

 
Stereosin :
모두에게 좋은 하루. 결론 - 각 공개 시장 주문(이익실현 및 손절매가 있음)에 대해 손절매가 발생하면 보류 주문이 반대 방향으로 배치됩니다(주문이 매수인 경우 보류 중인 주문이 전송됨). 현재 주문이 이익실현으로 마감되었을 때 보류 중인 주문을 삭제하는 스크립트를 작성하기 위해 구문의 순서를 어떤 식으로든 파악할 수 없습니까? 무료글 중에 이미 작성된 스크립트가 있을지도 모르지만 검색이 잘 안되네요 (.이를 이해하기 위해 직접 작성하고 싶지만 구문 순서를 이해할 수 없습니다. 다른 예를 들어 설명하겠습니다 - I want ice cream - 구문 순서 - 1) - 소파에서 벗어나기 2) 옷을 입기 3) 가게로 걸어가기 4) 아이스크림을 사세요. 내 작업에 대해 동일한 것을 작성할 수 있습니까?

현재 주문이 마감되면 구매당 주문 수가 감소하거나 전혀 없을 것입니다(알고리즘에 따라 다름) 이 확인을 수행하고 보류 중인 주문을 제거합니다

이와 같은 것(여기서 반대로 이전에 배치된 매수가 이익으로 마감된 경우 연체자는 제거됨):

 for ( int m= OrdersTotal ()- 1 ;m>= 0 ;m--)
   if ( OrderSelect (m,SELECT_BY_POS,MODE_TRADES)) 
     if ( Symbol ()==OrderSymbol() && OrderMagicNumber()==Magic) {  
    
       if (OrderType()==OP_BUY)  sBuy++; 
       if (OrderType()==OP_SELL) sSell++;
       
       if (OrderType()==OP_BUYLIMIT)
       if (sBuy== 0 || sSell> 0 ) OrderDelete(OrderTicket());
       if (OrderType()==OP_SELLLIMIT) 
       if (sSell== 0 || sBuy> 0 ) OrderDelete(OrderTicket());
  }
 
Ratmirf :

이것이 작동하는 방식입니다.

if (OrderOpenTime()+7200+15*60 <=TimeCurrent()) Cls_Buy=true;

if (OrderOpenTime()+7200+900 <=TimeCurrent()) Cls_Buy=true;

그리고 결국 이렇게?

if (OrderOpenTime()+8100 <=TimeCurrent()) Cls_Buy=true;

글쎄요, 이건 고등학교 수학입니다... 좀 더 자신에게 자신감을 가지세요.
 
harbor :

현재 주문이 마감되면 구매당 주문 수가 감소하거나 전혀 없을 것입니다(알고리즘에 따라 다름) 이 확인을 수행하고 보류 중인 주문을 제거합니다

이와 같은 것(여기서 반대로 이전에 배치된 매수가 이익으로 마감된 경우 연체자는 제거됨):

매우 감사합니다. 오늘 밤에 조사하겠습니다.
 

봐요, 문제가 생겼어요. 그 의미를 잘 이해하지 못해요. 코드의 의미는 정지 손실이 정지 수준보다 작을 수 있는 특정 신호로 주문을 여는 것입니다. 이런 일이 발생하면 - 원하는 크기로 정지 손실을 늘립니다. 나는 열 때 tp를 설정하지 않고 프로그램에서 가상으로두고 주문을 엽니 다. 결과적으로 15 - 20 중 하나만 열려 있습니다. 각 주문을 열려면 어떻게 해야 합니까? 코드 :

RefreshRates();


     double bid = MarketInfo(symbol,MODE_BID);
     double ask = MarketInfo(symbol,MODE_ASK);

    

     double stoplevel =  NormalizeDouble(stoplevelTemp * tickTemp,digitsTemp)+tickTemp;

     if(digitsTemp == 5 )
          stoplevel+=(700 * tickTemp);
     
     if(spreadOrdDangBr < stoplevel)                                                                           //если спред меньше стоплевела - перебиваем
         spreadOrdDangBr=stoplevel;
         
     double lotDB = calculationLot(spreadOrdDangBr,0.0025);                                                      //расчитываем лот - четверть процента свободных денег
     


         slODB=ask-spreadOrdDangBr;                                                                              
         tpODB= ask+ spreadOrdDangBr;

         orderTicketODB=OrderSend(symbol,OP_BUY,lotDB,ask,3,slODB,0,("dangBr" +spreadOrdDangBr));



결과적으로 터미널에서


 
안녕하세요 여러분) 선택한 바의 최고가 를 결정하는 방법(예: 백분의 일)
 

도와주세요, 제발! 예를 들어 구매를 연 후 가격이 예를 들어 100 상승할 때 원합니다.
포인트, 손절매 는 이전 손절매에 비해 0이 되었습니다.

내가 옳은 일을 하고 있습니까?


if(Bid-OrderOpenPrice()>Point* 100 )

{

OrderModify(OrderTicket(),OrderOpenPrice(), 0 ,TakeProfit,0,);

반환(0);

}

고맙습니다!

 
Tema97 :
안녕하세요 여러분) 선택한 바의 최고가를 결정하는 방법(예: 백분의 일)
높음[100]은 도움이 되지 않습니다.
 

함수를 찾았습니다. 100개의 막대에 대한 최대 및 최소 가격을 결정하고 수평선을 그립니다. 선으로 - 한 번만 그립니다. 즉 - 새로운 최고점과 최저점으로 또 다른 100점을 전달하면 선이 그려지지 않습니다. 아시는 분은 회신 부탁드립니다. - 여기 코드 자체가 있습니다

외부 정수 Quant_Bars=100; // 막대의 수

//------------------------------------------------ --------------------

int start() // 사양. 시작 기능

{

정수 나; // 바 번호

double Minimum=Bid, // 최저 가격

최대=입찰가 // 최고가

for(i=0;i<=Quant_Bars-1;i++) // 0(!)에서 ..

{ // ..Quant_Bars-1(!)

if (Low[i]< Minimum) // If < 알려진 경우

최소=낮음[i]; // 그러면 최소값이 됩니다.

if (High[i]> Maximum) // If > 알려진 경우

최대=높음[i]; // 그러면 최대값이 됩니다.

}

Alert("마지막 ",Quant_Bars, // 표시

" 막대 최소 = ",최소," 최대 = ", 최대);

double line1=ObjectCreate("highLine", OBJ_HLINE ,0,0,최대);

double line2= ObjectCreate("lowLine",OBJ_HLINE,0,0,최소);

리턴(0); // start()에서 종료

}

 
마침내 문서를 존중하는 테마 . 거기에서 많은 흥미로운 것을 찾을 수 있습니다... 예를 들어 , iHighest 는 해당 차트에서 가장 높은 값(현재 막대에 상대적인 오프셋)의 인덱스를 반환합니다. 그리고 iHigh 는 해당 차트의 막대(shift 매개변수로 표시)의 최고 가격 값을 반환합니다. 이 두 가지 기능을 이해하면 항상 잘 작성되지 않은 다른 사람의 기능에 의존하지 않고도 문제를 쉽게 해결할 수 있습니다.
 
표시기가 비표준 그래픽 개체를 그리는 경우 해당 개체에 액세스할 수 있습니까? 문제는 객체 목록에 표시되지 않고(All 버튼을 누른 상태에서) ObjectsTotal() 함수가 객체를 볼 수 없다는 것입니다. 이름으로 개체에 액세스하려고 할 때 GetLastError()는 오류 4202를 반환합니다( ObjectFind() 함수 ).
사유: