도와주세요 [해결] - 페이지 3

 
mrluck1 :
네 고객님, 지금까지 단 1번의 거래만 이루어졌습니다. 하지만 귀하의 모범은 훌륭했습니다. 새로운 EAS를 만드는 기반으로 매우 유용할 것입니다.
bool trade_made = false ;

void OnTick ()
  {
   double up   = iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 ),
          down = iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );
   static bool was_above = true ;
   bool is_above = ( MathMax (up,down)< Bid );
   if ( !trade_made && !was_above && is_above && open_orders()< 1 )
     {
       if ( OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point )< 0 )
        {
         printf ( "OrderSend() failed. Error code: %i" , GetLastError ());    
        }
       else t rade_made= true ;
     }
   was_above = is_above;
  }

int open_orders()
  {
   int count = 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) // good habit to count down
     {
       if (! OrderSelect (i, SELECT_BY_POS ))   continue ;   // select the order
       if ( OrderSymbol () != _Symbol )       continue ;   // optional check for same symbol
       if ( OrderMagicNumber ()!= magic_no)   continue ;   // optional check for magic number
       if ( OrderType () < 2 )                count++;   // 0 == OP_BUY and 1 == OP_SELL
     }
   return (count);
  }
 
mrluck1 :

Marco: 귀하의 새 업데이트를 시도했지만 거래가 되지 않습니다. 귀하가 마지막으로 게시한 방식을 티켓에 넣고 두 번째 정수를 제거했습니다. 그러나 첫 번째 거래는 전략 테스터 에서 이루어지지 않습니다. 이제 어떻게해야합니까?

다음과 같은 이유로 거래를 해야 합니다.


     if ( MathMax (up,down) < Bid )

    ticket= OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );


//+------------------------------------------------------------------+
//|                                                    One Order.mq4 |
//|      Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict

bool order= 0 ; int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (order== 0 )
     {
       double up= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 );
       double down= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );
        {
         if ( MathMax (up,down)< Bid )
           {
            ticket= OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );
              {
               if (ticket>- 1 )
                 {
                  order= 1 ;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+

방금 해봤는데 1개 주문...


 

정말 감사 합니다.

도움을 주신 Mr Marco에게도 감사드립니다.

 
mrluck1 :

정말 감사 합니다.

물론이죠. 그러나 대답이 생각만큼 간단하지 않다는 데 동의하십니까? 여기에 CODE Help( Urgent) 의 일부 설명이 설명되어 있습니다.
 
honest_knave :
물론이죠. 그러나 대답이 생각만큼 간단하지 않다는 데 동의하십니까? 여기 CODE Help( Urgent) 의 일부 의견을 설명할 수 있습니다.
나는 이미 그 의견을 제거했습니다. 간단한 EA는 나에게 문제입니다. 나는 정말로 말할 것이 없습니다.
 
mrluck1 :
나는 이미 그 의견을 제거했습니다. 간단한 EA는 나에게 문제입니다. 나는 정말로 말할 것이 없습니다.

이봐, 우리 모두는 아직 배우는 중이야. 그리고 당신의 마음은 올바른 위치에 있었습니다.

문제를 해결하셨다니 다행입니다.

같은 일을 하는 데에는 여러 가지 방법이 있습니다... Marco와 저는 다른 방향에서 문제를 해결했으며 둘 다 똑같이 맞습니다.

행운을 빕니다

 

예 Mr Marco vd Heijden 그것은 바로 순정_knave에서처럼 작동합니다. 나는 당신이 처분한 마지막 코드를 기반으로 다시 시도했고 훌륭하게 작동했습니다. 나는 두 가지 대답을 모두 취하고 원래 아이디어와 더 유사하기 때문에 이 스크립트에 당신을 사용할 것입니다.

도와주셔서 감사합니다

 
나는 당신이 게시하는 코드에서 EA가 더 이상 주문을 열지 않을 것이라고 믿습니다. 차트에서 EA를 제거 하고 다시(초기화하기 위해) 다시 첨부하지 않는 한. 그게 목적이었던 것 같은데?
 
Hairi Baba :
나는 당신이 게시하는 코드에서 EA가 더 이상 주문을 열지 않을 것이라고 믿습니다. 차트에서 EA를 제거하고 다시(초기화하기 위해) 다시 첨부하지 않는 한. 그게 목적이었던 것 같은데?

이제 그가 올바른 방향을 선택하기를 바랍니다. :)

나는 어딘가에서 자신이 아직 공석이라는 사실을 잊고 무슨 일이 일어났는지 추측해 봤다는 이야기를 읽었습니다... $$$$$

 
Hairi Baba :
나는 당신이 게시하는 코드에서 EA가 더 이상 주문을 열지 않을 것이라고 믿습니다. 차트에서 EA를 제거하고 다시(초기화하기 위해) 다시 첨부하지 않는 한. 그게 목적이었던 것 같은데?
예, 그것이 OP가 원하는 것입니다.
사유: