[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 47

 

한때 거의 아무것도 이해하지 못했던 친애하는 포럼 전문가들.

Parabolic Sar 표시기를 사용하여 간단한 EA를 연습으로 작성하려고 합니다. 그 행동은 기본적이어야 합니다. 가격이 캡 값 아래에 있었다가 더 높아진 경우 가격이 지표 값을 교차할 때 정확히 한 번 손절매와 이익실현 10으로 정확히 한 번 구매해야 합니다. 포인트들. 그렇지 않으면 판매하십시오.

문제는 그가 사고파는 일이지만, 예금에 무료 자금이 있는 동안 그가 한 번이 아니라 항상 그것을 한다는 것입니다. 저것들. 가격이 Sar의 가치 이상으로 오르면 가격이 높은 동안 계속 매수하고, 가격이 Sar 아래로 떨어지면 가격이 낮은 동안 항상 매도합니다.

실제로 문제 자체는 다음과 같습니다. 그러한 조건이 나타날 때 고문이 하나의 거래만 체결하도록 강제하는 방법은 무엇입니까?

여기 내 EA 코드가 있습니다.

 //+------------------------------------------------------------------+
//|                                    Current_sar_value_summary.mq4 |
//|                                         Орлов Денис Владимирович |
//|                                                 orlovkem@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Орлов Денис Владимирович"
#property link      "orlovkem@mail.ru"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init ( )
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit ( )
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start ( )
  {
//----
                     //объявляем переменные
   double _sar_value ; //текущий уровень Сар
   double _price ;       //текущий уровень цены
   int _ticket ;      //возвращает количество открытых позиций
   
   _sar_value = iSAR ( 0 , 0 , 0.02 , 0.2 , 0 ) ; //приравнял переменную _sar_value к текущему значению индикатора Сар
   _price = Bid ;                      //приравнял переменную _price к текущему уровню цены Бид
   
   //описываем условие покупки: если уровень цены был ниже значения сар
   if ( _price < _sar_value )
           {
           if ( _price > = _sar_value ) // а потом стал выше, то покупаем
                {
                   Alert ( "Надо покупать" ) ;
                   _ticket = OrderSend ( Symbol ( ) , OP_BUY , 1 , Ask , 1 , Bid - 10 * Point , Ask + 10 * Point , NULL , 0 , 0 , Red ) ;
                     
                          Print ( "OrderSend failed with error #" , GetLastError ( ) ) ;
                           return ( 0 ) ;
                 
                }
                 return ( 0 ) ;
           }
 
         
   if ( _price > _sar_value ) //описываем условие покупки: если уровень цены был выше значения сар
         {
           if ( _price < = _sar_value ) // а потом стал ниже, то продаем
            {
                   Alert ( "Надо продавать" ) ;
                   _ticket = OrderSend ( Symbol ( ) , OP_SELL , 1 , Bid , 1 , Ask + 10 * Point , Bid - 10 * Point , NULL , 0 , 0 , Red ) ;
                     
                          Print ( "OrderSend failed with error #" , GetLastError ( ) ) ;
                           return ( 0 ) ;
                   
            }
            return ( 0 ) ;
            
         }
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+

내가 그것을 알아낼 수 있도록 도와 달라고 요청하고, 내가 구루가되면 나 같은 바보의 요청을 통과하지 않을 것을 약속합니다.

진심으로, Orlov Denis.

 
orlovkem >> :

한때 거의 아무것도 이해하지 못했던 친애하는 포럼 전문가들.

Parabolic Sar 표시기를 사용하여 교육으로 간단한 EA를 작성하려고 합니다. 그 행동은 기본적이어야 합니다. 가격이 캡 값 아래에 있었다가 더 높아진 경우 가격이 지표 값을 교차할 때 정확히 한 번 손절매와 이익실현 10으로 정확히 한 번 구매해야 합니다. 포인트들. 그렇지 않으면 판매하십시오.

문제는 그가 사고파는 일이지만, 예금에 무료 자금이 있는 동안 그가 한 번이 아니라 항상 그것을 한다는 것입니다. 저것들. 가격이 Sar의 가치 이상으로 오르면 가격이 높은 동안 계속 매수하고, 가격이 Sar 아래로 떨어지면 가격이 낮은 동안 항상 매도합니다.

실제로 문제 자체는 다음과 같습니다. 그러한 조건이 나타날 때 고문이 하나의 거래만 체결하도록 강제하는 방법은 무엇입니까?

여기 내 EA 코드가 있습니다.

내가 그것을 알아낼 수 있도록 도와 달라고 요청하고, 내가 구루가되면 나 같은 바보의 요청을 통과하지 않을 것을 약속합니다.

진심으로, Orlov Denis.

지표 값은 어디에 있습니까? (어떤 변수에 저장하셨나요...?) 가격 값과 동일

 double _sar_value ; //текущий уровень Сар
   double _price ;       //текущий уровень цены

 
lascu.roman >> :

지표 값은 어디에 있습니까? (어떤 변수에 저장하셨나요...?) 가격 값과 동일

사실 지표의 이전 값은 이전 양초에 있고 가격은 현재 양초의 지표 값을 교차합니다.

가격과 동일합니다. "이전 가격 값"은 이전 틱의 가격을 의미합니까? 또는 이전 양초의 폐쇄, 그러나 이것은 동일하지 않습니다.

뭔가를 추가해야한다는 것은 이해하지만 정확히 무엇을 이해할 수 없습니다. 도와주세요, 이것은 내 첫 경험입니다.

진심으로, Orlov Denis.

 
orlovkem >> :

사실 지표의 이전 값은 이전 양초에 있고 가격은 현재 양초의 지표 값을 교차합니다.

가격과 동일합니다. "이전 가격 값"은 이전 틱의 가격을 의미합니까? 또는 이전 양초의 폐쇄, 그러나 이것은 동일하지 않습니다.

뭔가를 추가해야한다는 것은 이해하지만 정확히 무엇을 이해할 수 없습니다. 도와주세요, 이것은 내 첫 경험입니다.

진심으로, Orlov Denis.

그때 무슨 말을 했는지 이해했습니까? 현재 값을 확인 중입니다.

 if ( _price < _sar_value )
           {
           if ( _price > = _sar_value ) // а потом стал выше, то покупаем

상호 배타적인 두 가지 조건. 그는 언제 키가 커졌습니까?

 
Roger >> :

그때 무슨 말을 했는지 이해했습니까? 현재 값을 확인 중입니다.

상호 배타적인 두 가지 조건. 그는 언제 키가 커졌습니까?

 if(_price<_sar_value)
           {
           if(_price>=_sar_value)// а потом стал выше, то покупаем

제가 댓글을 잘못 공식화한 것일 수도 있지만 본질은 여전하고 가격 수준이 지표 값보다 높아져서 구매해야 하고 그는 구매하지만 한 번은 해야 하며 조언은 돈이 있는 한 구매합니다 보증금에. 거래 수를 제한하기만 하면 됩니다. 한 번에 하나 이상을 수행하지 마십시오. 그렇게 하면 작동하지 않습니다.

 
xruss >> :

그리고 내역에 매도 주문이 있었고 Expert Advisor가 이를 마감했다면(내역 유형에서 해당 주문의 마감은 t/p 또는 s/l로 표시됩니다. 마지막으로 간주되지 않을까요?) 원하는 효과를 얻지 못함((

주문(구매 또는 판매)이 마지막으로 마감되고(EA가 마감했거나 t/p 또는 s/l이 작동함) 조건에 따라 통과하는 경우

if(OrderSymbol()==Symbol()){
  if(OrderMagicNumber()==MagicNumber){

따라서 그는 마지막으로 간주됩니다. 어떤 구체적인 효과를 얻을 수 있습니까?
 
Everlost >> :

주문(구매 또는 판매)이 마지막으로 마감되고(EA가 마감했거나 t/p 또는 s/l이 작동함) 조건에 따라 통과하는 경우

if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MagicNumber){

따라서 그는 마지막으로 간주됩니다. 달성할 수 없는 특정 효과는 무엇입니까?

예, 아마도 코드에서 OrderMagicNumber()를 제외했기 때문일 것입니다.

주문 마감 후 다시 열리지 않도록 하고 싶습니다. Buy를 열고 닫으라는 신호 후에 Buy가 다시 열리지 않는다는 조건을 설명하는 것은 불가능합니다(때로는 개장 조건이 여전히 유지된다는 사실입니다). 판매도 같은 이야기입니다. 매수가 있었고 이익이 있었다면 조건에 명기하면 멋질 거라고 생각했습니다 - 다시 매수를 열지 마세요. 그리고 그는 여전히 열려 있습니다 - 이 나쁜 놈!)))

((

 
xruss писал(а) >>

예, 아마도 코드에서 OrderMagicNumber()를 제외했기 때문일 것입니다.

주문 마감 후 다시 열리지 않도록 하고 싶습니다. Buy를 열고 닫으라는 신호 후에 Buy가 다시 열리지 않는다는 조건을 설명하는 것은 불가능합니다(때로는 개장 조건이 여전히 유지된다는 사실입니다). 판매도 같은 이야기입니다. 조건에 매수가 있고 이익이 있다면 - 다시 매수를 열지 않는 것이 좋을 것 같다는 생각이 들었습니다. 그리고 그는 여전히 열려 있습니다 - 이 나쁜 놈!)))

((

동시에 열리는 주문의 수를 제어하는 가장 쉬운 방법

if(OrdersTotal()<1){

   .................
   .................
   условия установки ордеров 

}
 
goldtrader >> :

OrderSend ( ... ) 함수에 대한 설명 읽기

주문이 서버로 전송될 때 매직 넘버(magic)가 할당됩니다.

주로 보류 중인 주문/포지션을 식별하는 데 사용됩니다.

저것들. 고문이 "외부" 주문을 건드리지 않도록. 조언자 또는 스크립트에 의해 할당됩니다.

마법을 수동으로 설정하는 것은 불가능합니다. EA/스크립트에서 직접 규칙을 정의합니다.

더 자주 마법은 정적이지만 필요한 경우 동적으로 만들 수 있습니다.

코드베이스에서 몇 가지 간단한 예를 살펴보십시오. 명확해져야 합니다.

티켓 번호로 "귀하의" 주문을 식별할 수 없는 이유는 무엇입니까? 그들은 얼마나 많은 고문이 일하든 상관없이 확실히 독특합니다.

예를 들어, 고문은 주문을 열고 티켓을 기억하고 닫았습니다.

 
mukata >> :

티켓 번호로 "귀하의" 주문을 식별할 수 없는 이유는 무엇입니까? 그들은 얼마나 많은 고문이 일하든 상관없이 확실히 독특합니다.

예를 들어, 고문은 주문을 열고 티켓을 기억하고 닫았습니다. 잊어 버렸습니다.

Chubais는 전기를 차단한 다음 그들이 있는 곳과 낯선 곳에서 누공을 찾습니다.
사유: