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

[Deleted]  
이 기능의 버그를 수정하도록 도와주세요. 이미 나에게서 모든 주스를 짜내었습니다. 기능의 본질은 특정 이익에 도달하면 기능이 주문의 절반을 마감해야 한다는 것입니다.
void CloseHalfOrder(){

for (int i = 0; i<=OrdersTotal(); i++)
{
if (OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderProfit()>= NormalizeDouble (TP*Point,Digits))
{
if (OrderType() == OP_BUY)
double Lots = OrderLots();
double HalfLot = NormalizeDouble (Lots*0.5,2);
OrderClose(OrderTicket(),HalfLot,Bid,0,HotPink);

if (OrderType() == OP_SELL)
double Lots1 = OrderLots();
double HalfLot1 = NormalizeDouble (Lots*0.5,2);
OrderClose(OrderTicket(),HalfLot1,Ask,0,HotPink);
}
}
}
}

예, 또한 하나의 미결 주문에 대해 한 번만 작동하게 하는 방법은 무엇입니까?
 
Trader7777 :
이 기능의 버그를 수정하도록 도와주세요. 이미 나에게서 모든 주스를 짜내었다. 기능의 본질은 특정 이익에 도달하면 기능이 주문의 절반을 마감해야 한다는 것입니다.
예, 또한 하나의 미결 주문에 대해 한 번만 작동하게 하는 방법은 무엇입니까?
여기 에서 부분 주문 마감의 원칙을 볼 수 있습니다.
 
Trader7777 :
이 기능의 버그를 수정하도록 도와주세요. 이미 나에게서 모든 주스를 짜내었습니다. 기능의 본질은 특정 이익에 도달하면 기능이 주문의 절반을 마감해야 한다는 것입니다.

void CloseHalfOrder(){

for (int i = 0; i<=OrdersTotal(); i++)
{
if (OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic){//Нефига тут профиту делать, это так, для убыстрения....

if(OrderProfit()>= NormalizeDouble (TP*Point,Digits)) //А тут вообще непонятки что с чем сравниваете....
{
if (OrderType() == OP_BUY)
double Lots = OrderLots();
double HalfLot = NormalizeDouble (Lots*0.5,2);// Тут озаботится чтобы лот не стал меньше минимального
OrderClose(OrderTicket(),HalfLot,Bid,0,HotPink);

if (OrderType() == OP_SELL)
double Lots1 = OrderLots();
double HalfLot1 = NormalizeDouble (Lots*0.5,2);
OrderClose(OrderTicket(),HalfLot1,Ask,0,HotPink);
}
}
}

}


}

예, 또한 하나의 미결 주문에 대해 한 번만 작동하게 하는 방법은 무엇입니까?
[Deleted]  
TarasBY :
여기 에서 부분 주문 마감의 원칙을 볼 수 있습니다.

고맙습니다. 그러나 나는 여전히 내 실수를 먼저 이해하고 싶습니다. 다 똑같이 공부해요.. 무엇보다 진실에 너무 가까워진 것 같아요.

[Deleted]  

다시.. 기능이 작동하지 않습니다. 나는 실수를 이해하고 싶다. + 1개의 미결 주문에 대해 1번만 작동하게 하는 방법은 무엇입니까? 미리 감사드립니다)

 extern int TP         = 200 ; // это количество пунктов после которых должно произойти частичное закрытие
extern int Magic      = 77 ;


void CloseHalfOrder(){

for ( int i = 0 ; i<= OrdersTotal (); i++)
  {
     if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) == true )
      {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic && OrderProfit ()>= NormalizeDouble (TP* Point , Digits ))
          {
             if ( OrderType () == OP_BUY ) 
             double Lots = OrderLots (); 
             double HalfLot  = NormalizeDouble (Lots* 0.5 , 2 ); // изначально ( при открытии ордера) лот рассчитывается так, что он не может быть меньше чем 0,02
            OrderClose ( OrderTicket (),HalfLot, Bid , 0 ,HotPink);
          
             if ( OrderType () == OP_SELL )
             double Lots1 = OrderLots (); 
             double HalfLot1  = NormalizeDouble (Lots* 0.5 , 2 );
             OrderClose ( OrderTicket (),HalfLot1, Ask , 0 ,HotPink);
          }
        }
      }
    }
 
Trader7777 :

다시.. 기능이 작동하지 않습니다. 나는 실수를 이해하고 싶다. + 1개의 미결 주문에 대해 1번만 작동하게 하는 방법은 무엇입니까?


한 번 주문에 대한 매우 명확한 상태가 아닙니다. 여기 아마도 전역 변수 를 사용해야 합니다. 여러 주문이 있을 수 있으며 각 주문은 한 번만 가능합니까?
 
Trader7777 :

다시.. 기능이 작동하지 않습니다. 나는 실수를 이해하고 싶다. + 1개의 미결 주문에 대해 1번만 작동하게 하는 방법은 무엇입니까?

로트 크기로 필터링
 

나는 다음과 같은 상황이 있습니다. Expert Advisor에는 여러 모듈이 있으며 각 모듈은 여러 사용자 기능을 사용합니다. 코드에 빠져들지 않기 위해 각 모듈을 스크립트에 집어넣기로 했습니다. 다음 은 Expert Advisor에서 스크립트를 호출하는 자동 판매기 옵션입니다. 그러나 여기서 다음과 같은 문제가 발생합니다. 스크립트를 호출할 때 스크립트에 일부 매개변수를 전달해야 합니다. 전역 변수를 사용할 수 있습니다. 어떤 다른 옵션을 생각할 수 있습니까?

나는 즉시 말합니다. iCustom()을 통한 "간단한" 옵션은 두 가지 이유로 저에게 적합하지 않습니다. 첫째, 모듈에 대한 호출은 영구적인 것이 아니라 기억에서 일시적이어야 합니다. 둘째, 표시기 배열을 사용하지 않습니다.

[Deleted]  
Sepulca :

한 번 주문에 대한 매우 명확한 상태가 아닙니다. 여기서 아마도 전역 변수를 사용해야 합니다. 여러 주문이 있을 수 있으며 각 주문은 한 번만 가능합니까?

시장에는 하나의 주문만 있을 수 있습니다. 현재로서는 이 기능이 전혀 작동하지 않습니다.. 웬일인지. 하지만 정상작동을 한다면 수익이 정해진 포인트 이상인 이상 지속적으로 작동되는 것으로 알고 있습니다. 물론, 그녀는 포지션의 절반을 한 번만 닫았을 필요가 있습니다. 그게 전부입니다. 그러나 처음에는 적어도 그녀는 전혀 벌었을 것입니다)
 
gyfto :

나는 다음과 같은 상황이 있습니다. Expert Advisor에는 여러 모듈이 있으며 각 모듈은 여러 사용자 기능을 사용합니다. 코드에 빠져들지 않기 위해 각 모듈을 스크립트에 집어넣기로 했습니다. 다음 은 Expert Advisor에서 스크립트를 호출하는 자동 판매기 옵션입니다. 그러나 여기서 다음과 같은 문제가 발생합니다. 스크립트를 호출할 때 스크립트에 일부 매개변수를 전달해야 합니다. 전역 변수를 사용할 수 있습니다. 어떤 다른 옵션을 생각할 수 있습니까?

나는 즉시 말합니다. iCustom()을 통한 "간단한" 옵션은 두 가지 이유로 저에게 적합하지 않습니다. 첫째, 모듈에 대한 호출은 영구적인 것이 아니라 기억에서 일시적이어야 합니다. 둘째, 지표 배열을 사용하지 않습니다.


옵션으로 라이브러리 문제.