초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 354

 
Arsen_Syharev :
Sell1 및 Sell2 프랙탈을 열 때 동시에 주문이 열리도록 작성하는 명령을 알려주세요
포럼에 무언가가 비어 있습니다.
 
안녕, 친구, 조건이 올 경우 .. (SigPF==1 또는 SigPF==2) 및 OrdersTotal>0 즉, 가장 간단한 기능을 알려주세요. SigPF 조건 중 하나가 발생하는 경우 현재 시장에 있는 주문만 처리해야 합니다.

함수 내부의 조건을 테스트하기 위한 외부 변수..
외부 int PF_price_in_pips=70;
함수는 다음을 수행해야 합니다.
1. 처리할 주문을 결정합니다.. SigPF==1이면 BUY 주문(구매 신호)이고, SigPF==2이면 SELL 주문(판매 신호)입니다.
2. 현재 가격을 확인하고 경우
시장에서 지금 주문을 구매하고 SigPF==1인 경우

구매 주문이 열릴 현재 가격과 이미 시장에 있는 주문 시작 가격 간의 차이가 PF_price_in_pips보다 크면 함수는 valid_signal=true 플래그를 반환해야 합니다.


이제 시장에서 주문을 판매하고 SigPF==2였습니다.

이미 시장에 있는 주문 개시 가격과 판매 주문이 열릴 현재 가격 간의 차이가 PF_price_in_pips보다 크면 함수는 valid_signal=true 플래그를 반환해야 합니다.

매수-매도 신호 발생 시 새 주문의 시작 가격 사이의 거리가 PF_price_in_pips보다 작은 경우 함수는 valid_signal=false를 반환합니다.

일반적으로 간단히 말해서 이 함수는 매수-매도 신호(SigPF==1, SigPF==2)에 대한 새 주문의 시작 가격과 이미 시장에 있는 주문 시작 가격 사이의 거리를 확인해야 합니다. .. 이 거리가 PF_price_in_pips보다 크면 valid_signal=true 플래그를 반환하고, 이 거리가 작으면 valid_signal=false를 반환합니다. 이것은 서로 매우 가까운 가격으로 주문을 여는 것을 방지하기 위한 것입니다! 그리고 한 가지 더.. 제 고문은 새로운 바가 열릴 때만 거래를 합니다. 모든 틱이 아니라.. 그래도 중요하지 않다고 생각합니다. 여전히 Bid 또는 Ask 가격을 고려해야 합니다. .

이 기능을 도와주세요..! 뭔가 명확하지 않으면 설명하려고 노력할 것입니다.. 아니면 사진을 줄 것입니다! 도와주세요) 감사합니다!
 

제가 용어를 제대로 이해했는지 모르겠지만..

   int PF_price_in_pips=70;
   int OrdTotal=OrdersTotal();
   bool valid_signal=false;
   int SigFF;
   
   if(OrdersTotal()>0)
   {
   for(int i=OrdTotal-1; i>=0; i --)
     {
      if(!OrderSelect(i,SELECT_BY_POS))
         continue;

      if(OrderType()==OP_BUY && SigFF==1 && Ask+OrderOpenPrice()>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;
      if(OrderType()==OP_SELL && SigFF==2 && OrderOpenPrice()-Bid>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;

     }
     }
 
Arsen_Syharev :
Sell1 및 Sell2 프랙탈을 열 때 동시에 주문이 열리도록 작성하는 명령을 알려주세요
Sell1 및 Sell2의 값은 주문을 시작하는 데 적합합니다. //나는 더 이상 당신의 고통을 볼 수 없습니다 ....
 
Arsen_Syharev :
Sell1 및 Sell2 프랙탈을 열 때 동시에 주문이 열리도록 작성하는 명령을 알려주세요
 if (Sell1 != 0 && Sell2 != 0 ){

/* Если по текущей цене */ 

OrderSend (Symbol1, OP_SELL, Lots, Bid, 1 , 0 , 0 , 0 , Magik, 0 , Red);

OrderSend (Symbol2, OP_SELL, Lots, Bid, 1 , 0 , 0 , 0 , Magik, 0 , Red); 

/*Если по пробитию фракталов отложенными ордерами */

 OrderSend (Symbol1, OP_SELLSTOP, Lots, Sell1, 1 , 0 , 0 , 0 , Magik, 0 , Red);

OrderSend (Symbol2, OP_SELLSTOP, Lots, Sell2, 1 , 0 , 0 , 0 , Magik, 0 , Red);  

} 

그러나 이것은 아마도 매우 매우 거친 예일 것입니다

 
동지들이여, 한 계정에서 두 개 이상의 신호에 서명할 수 있다고 말하지 마십시오.
 

안녕하세요, 동료 여러분, 저는 최근에 귀하의 계급에 합류했습니다 :). 대기 중인 주문 을 하는 데 지쳐서 인터넷에서 다운로드한 스크립트를 사용하기로 결정했는데 만족하지 못했습니다. 몇 시간 동안 고통을 겪은 후, 나는 내 간단한 것을 돌진했습니다. 그 본질은 주어진 수의 보류 지정가 주문이 양방향으로 열리는 것입니다. 질문: 각 주문에 후행 정지를 설정하는 방법은 무엇입니까? 이것은 고문이 아니라 스크립트입니다. 내 말은, 주문이 열렸고 흔적이 남았고 그게 다야 대본이 제 역할을 했습니다. 스크립트로 일반 후행 중지를 호출하는 방법은 주문에서 마우스 오른쪽 버튼을 클릭하면 어떻게 됩니까? 4번째 MetaTrader 빌드 765.

 
entitie :

안녕하세요, 동료 여러분, 저는 최근에 귀하의 계급에 합류했습니다 :). 대기 중인 주문 을 하는 데 지쳐서 인터넷에서 다운로드한 스크립트를 사용하기로 결정했는데 만족하지 못했습니다. 몇 시간 동안 고통을 겪은 후, 나는 내 간단한 것을 돌진했습니다. 그 본질은 주어진 수의 보류 지정가 주문이 양방향으로 열리는 것입니다. 질문: 각 주문에 후행 정지를 설정하는 방법은 무엇입니까? 이것은 고문이 아니라 스크립트입니다. 내 말은, 주문이 열렸고 흔적이 남았고 그게 다야 대본이 제 역할을 했습니다. 스크립트로 일반 후행 중지를 호출하는 방법은 주문에서 마우스 오른쪽 버튼을 클릭하면 어떻게 됩니까? 4번째 MetaTrader 빌드 765.

프리랜서는 모든 것을 합니다.
 

안녕하세요!

작업은 다음과 같습니다. EURUSD.m 매수 및 EURUSD.m1 매도에 대해 일정 거리 단계 후에 주문을 열어야 합니다. 이 문제는 아래 코드에서 해결됩니다.

그러나 가격이 우리와 반대되는 경우 EURUSD.m1에서 판매하기 위한 마지막 주문에서 단계*2와 동일한 거리를 지난 경우에 한해 EURUSD.m에서 매수 주문을 열어야 합니다. 이 조건은 EURUSD.m에 대한 구매의 마지막 주문 시작보다 낮은 가격으로 미결제 상태가 발생하는 경우 작동합니다.

나는 그것을 쓰는 방법을 알아낼 수 없습니다. 도움을 주시면 감사하겠습니다

 // бай евро доллар
if (rates[ 1 ].open < rates[ 1 ].close && ! PositionSelect (Symbol1)) 
   {
      LastPriceBuy = OpenBuy(Symbol1,Lot); // если бычья свеча и нет открытой позиции по этому символу
   }
if ( GlobalVariableCheck ( "bb_1" )) GlobalVariableGet ( "bb_1" , bb_1);   // цифровая переменная внутренняя и ее проверка

if ( PositionSelect (Symbol1) && LastPriceBuy > 0 ) //открытие второго и последующих ордеров
  {
   if (LastPriceBuy+Step* _Point < SymbolInfoDouble (Symbol1, SYMBOL_ASK )) 
   {LastPriceBuy = OpenBuy(Symbol1,Lot);} // открытие позиции в бай по евро доллару всех последующих ордеров 
  }    

// сел евро доллар
if (rates[ 1 ].open > rates[ 1 ].close && ! PositionSelect (Symbol3)) {LastPriceSell = OpenSell(Symbol3,Lot);} // если бычья свеча и нет открытой позиции по этому символу
if ( GlobalVariableCheck ( "ss_1" )) GlobalVariableGet ( "ss1_" , ss_1);   // цифровая переменная внутренняя и ее проверка

if ( PositionSelect (Symbol3) && LastPriceSell > 0 ) //открытие второго и последующих ордеров
  {
   if (LastPriceSell-Step* _Point > SymbolInfoDouble (Symbol3, SYMBOL_BID ))
   {LastPriceSell = OpenSell(Symbol3,Lot);} // открытие позиции в селл по евро доллару всех последующих ордеров 
  } 
 
zfs :
프리랜서는 모든 것을 합니다.

매우 귀중한 상세하고 유익한 답변-댓글, 나는 당신이 그것을 사용하는 것이 좋습니다 ...

본질적으로 주문을 연 후 표준 후행 정지를 맨 위에 걸어두는 간단한 명령은 없습니까?

사유: