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

 

모든 것이 정확합니다!!!! 필요한 주문이 없으면 필요한 매직 번호 X가 0으로 유지되고 추가로 열립니다. 그렇다면 X는 2개 이상의 미개봉 주문과 같습니다.

그래서 무슨 거래?

- 맨 처음에 OrderSelect 기능 을 사용하여 존재하지 않는 주문을 선택합니다.

첫 번째 루프에서 for(int Uy=OrdersTotal();Uy<=-1;Uy--) 그래서, 뭐, 루프가 희망을 위해 더 많이 실행된 다음 0으로 변경했는데 작업에 변경 사항이 없습니다. 이것은 오류가 아니며 변경되지 않습니다. 죄송합니다.

 
주기 작업을 추적하기 위해 경고를 삽입했습니다. 나는 아무것도 이해하지 못한다. 루프에 있는 변수는 처음에 값 0으로 한 번 작성되고 그게 다입니다. 그러면 현재는 매도 정지 0과 매수 정지 130입니다. 이것도 놀랍습니다. 대칭입니다!!!! 그리고 2.5 미터 후에 비문은 이미 오류 148을 씁니다. (중개인은 많은 주문을 금지합니다)
 //+------------------------------------------------------------------+
//|                                                    для лавин.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"
extern double stoploss= 0 ; extern double takeprofit= 20 ; extern int otstup= 20 ; extern datetime expiration= 0 ;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
 int tiket,tikett; double volume= 0.1 ; int i= 0 ,R1= 0 ,R2= 0 ,A= 1 ; double price= PRICE_OPEN ;
   //  R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;
     
     
int start()
  {       int X;       
//----
       for ( int Uy= OrdersTotal ();Uy== 0 ;Uy--){
OrderSelect ( Uy,SELECT_BY_POS ); Alert ( "Uy" ,Uy);
if (OrderSymbol()== Symbol ()&&OrderMagicNumber( )== 1000 ||OrderMagicNumber( )== 2000 &&OrderSymbol()== Symbol ())
{X ++;}}  
if (X<= 2 ){
   tiket= OrderSend ( Symbol (), OP_BUYSTOP,  volume*A, price +otstup* Point , Point * 3 , R1, PRICE_OPEN +takeprofit* Point +otstup* Point , "OP_BUYSTOP" , 1000 ,  expiration, Red ); 
   Alert ( "OP_BUYSTOP" , GetLastError ( )); 
   tikett= OrderSend ( Symbol (), OP_SELLSTOP,  volume*A, price -otstup* Point , Point * 3 ,R2, PRICE_OPEN -takeprofit* Point -otstup* Point , "OP_SELLSTOP" , 2000 ,  expiration, C'0,128,255' );
     Alert ( "OP_SELLSTOP" , GetLastError ( )); 
    }       
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+

와우, 무슨 말도 안되는 소리. 그리고 먼저, 에러가 난 날짜를 쓸 때마다 약 49번. 예 !!!! X는 항상 0으로 유지되며 정상적으로 기록됩니다. 2번의 주문을 통해

 
PRICE_OPEN!!!! - 이 가격에 사용할 수 없습니다! 지표에 대해서만 작동합니다. Bid 또는 Ask를 사용하십시오.
 
Dimka-novitsek :

모든 것이 맞습니다!!!! 필요한 주문이 없으면 필요한 매직 번호 X가 0으로 유지되고 추가로 열립니다. 그렇다면 X는 2개 이상의 미개봉 주문과 같습니다.

그래서 무슨 거래?

- 맨 처음에 OrderSelect 기능을 사용하여 존재하지 않는 주문을 선택합니다.

첫 번째 루프에서 for(int Uy=OrdersTotal();Uy<=-1;Uy--) 그래서, 뭐, 루프가 희망을 위해 더 많이 실행 된 다음 0으로 변경했는데 작업에 변경 사항이 없습니다. 이것은 오류가 아니며 변경되지 않습니다. 죄송합니다.

그는 어떻게 할 수 있습니까 실행?

얼마나 많은 주문을 열어도 즉시 주문 수가 0보다 크거나 같기 때문에 조건 Uy<=-1이 즉시 충족되지 않습니다 .

 

오류를 찾도록 도와주세요

감사해요

 void TrailPositions()
{
//-----
   double BuySL = NormalizeDouble ( iCustom ( NULL , 0 , "NRTR" ,AveragePeriod, 0 , 1 ), Digits );
   double SelSL = NormalizeDouble ( iCustom ( NULL , 0 , "NRTR" ,AveragePeriod, 1 , 1 ), Digits );
//-----
   int Orders = OrdersTotal ();
   for ( int i= 0 ; i<Orders; i++)
  {
     if (!( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))) continue ;
     if (OrderSymbol() != Symbol ()) continue ;
    {
       if (OrderType() == OP_BUY && OrderMagicNumber()==Magic && OrderStopLoss() != BuySL* Point
      && BuySL* Point > OrderStopLoss()) // && BuySL*Point > OrderOpenPrice())
      {
        OrderModify(OrderTicket(),OrderOpenPrice(),BuySL* Point ,OrderTakeProfit(), 0 , CLR_NONE );
         if (UseSound == true)
        {
         PlaySound (SuccesSound);
        }
      }
       if (OrderType() == OP_SELL && OrderMagicNumber()==Magic && OrderStopLoss() != SelSL* Point
      && SelSL* Point < OrderStopLoss()) // && SelSL*Point < OrderOpenPrice())
      {
        OrderModify(OrderTicket(),OrderOpenPrice(),SelSL* Point ,OrderTakeProfit(), 0 , CLR_NONE );
         if (UseSound == true)
        {
         PlaySound (SuccesSound);
        }
      }
    }
  }
}

 
PapaYozh :


진드기가 있으면 고문의 아이콘이 "웃고 있음"이고 고문은 트랜잭션을 수행해야 하지만(즉, 이에 대한 조건이 발생함) 트랜잭션을 수행하지 않으면 디버그해야 합니다.

어드바이저 코드에서 Prine() 명령을 정렬하고 특히 비교가 수행되는 위치에서 정확히 무엇을 비교하는지 확인하십시오. 아마도 double 유형의 변수에 대해 같음 비교가 있고 비교 결과는 항상 false이지만 변수가 같다고 가정할 수 있습니다.

조언 정말 감사합니다!!! 내 질문을 알아 냈습니다. 시장 주문을 할 때 필요한 브로커, 즉 조건에 따라 정지 레벨을 동시에 설정할 수 없습니다. 이제 스탑 레벨 없이 주문이 이루어지며, 각 주문 직후에 스탑 레벨이 설정되도록 설정합니다. 문제가 발생했습니다. 주문의 가장 작은 부분이 수정되고 대부분의 경우 "전문가" 섹션에 다음이 표시됩니다.

2011.05.19 09:46:55 Spacenewcomer-Svecha CLM1,M15: 오픈 #30906670 99.79에 0.01 CLM1 판매
2011.05.19 09:46:55 Spacenewcomer-Svecha CLM1,M15: OrderModify 기능에 대한 유효하지 않은 티켓
2011.05.19 09:55:40 Spacenewcomer-Svecha ESM1,M5: 오픈 #30906787 1337.50 ok에 0.01 ESM1 구매

2011.05.19 10:00:03 Spacenewcomer-Svecha EURUSD,M15: OrderModify 기능에 대한 유효하지 않은 티켓

다음은 코드의 텍스트입니다.

{
res=OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0,"main",_MagicNumber,0,Red);


OrderModify(OrderTicket(),OrderOpenPrice(),Ask+StopLoss*Point,Ask-TakeProfit*Point,0,Red);
리턴(0);

}

그리고 어드바이저 출시 후 가장 먼저 열리는 바로 그 수정된 것!

당연히 코드에서 오더 수정을 잘못 설정했는데... 말해봐!

 
그래서 누구든지 ZZ의 마지막 두 극값을 표시하는 기능을 도울 수 있습니까 ???
 
친애하는 프로그래머 여러분, 어드바이저 개선에 대한 조언을 구합니다. 열린 위치 가 있습니다. 잠시 후 동일한 방향으로 열라는 두 번째 신호가 수신됩니다. 첫 번째 주문이 이미 긍정적인 영역에 있는 경우에만 두 번째 신호를 보충하고 싶습니다. 나는 이제 잔액과 자본의 크기를 비교하여 이것을 구현했지만(자본이 잔액보다 크면 미결 주문이 검은색으로 표시됨) 여러 Expert Advisors가 동일한 계정에서 작업하는 경우 이 옵션은 작동하지 않습니다.
기존 오픈 라스트 오더에 대한 손익 결정 코드를 알려주세요.
 
가장 신뢰할 수 있는 핍으로 측정합니다.
 
Roger :
가장 신뢰할 수 있는 핍으로 측정합니다.
코드를 제안할 수 있습니까?