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

 
누군가 지정가 주문의 구조를 작성
 
나는 Flive 신호를 사용하지만 때로는 주문을 직접 마감하고 싶습니다. 하지만 닫으면 다시 열립니다. 어떻게든 해결될 수 있을까요?
 
Artur116 :
나는 Flive 신호를 사용하지만 때로는 주문을 직접 마감하고 싶습니다. 하지만 닫으면 다시 열립니다. 어떻게든 해결될 수 있을까요?

"위치 동기화 ..."를 선택 취소하십시오.
 
Nesradamus :
나는 두 개의 월별 극한값이 있다고 가정했습니다 - 최소값과 최대값 ... 글쎄, 신의 축복이 있기 때문에 처음에는 코드가 길어서 도움을 요청했지만 ... 그것이 나에게 깨달아 4에 맞습니다. 윤곽.

이것은 월간 양초에 있는 경우입니다. 물론 iHigh(Symbol(), PERIOD_MN1 , BarOfMonth); 및 iLow(Symbol(), PERIOD_MN1, BarOfMonth);

그리고 한 달 안에 일일 차트에서 극단적인 가격을 찾아야 하는 경우 최소한 28개의 막대에 둘 이상의 극단값이 있을 것입니다.)

 
Zver4991 :

기능에 대한 또 다른 질문

예를 들어 지정된 가격으로 앞으로 5개의 막대를 앞으로 그리고 다시 그리지 않고 직사각형을 그리는 방법

"Object_name"이라는 이름에는 생성 시간이 포함되어야 합니다. 예를 들어 "Object_name"+TimeToString(Time[0]); 그러면 각 사각형은 고유한 이름을 갖게 됩니다.

0 막대에서 오른쪽으로 이동을 설정하려면 Time[0] 에 필요한 수의 막대 를 추가해야 합니다. 예를 들어 Time[0]+Period()*5*60(막대 5개 추가됨)

 datetime t1= Time [ 10 ], t2= Time [ 0 ]+ Period ()* 60 * 5 ;
SetRectangle( clrBlue , "Прямоугольник" + TimeToString ( Time [ 0 ]),t1, Low [ 10 ],t2, High [ 0 ]);
 
#property strict
#include <Indicators\Trend.mqh>
bool ind;
CiMA MA;
extern int pos= 1 ;
extern int sl= 40 ;
extern int tp= 70 ;
datetime time;
datetime time2;
bool trade= false ;
bool trade2= false ;
int a,b;
int OnInit ()
  {
//---
   MA.Create( Symbol (), PERIOD_CURRENT , 10 , 6 , MODE_EMA , PRICE_CLOSE ); //создал машку
//---
   return ( INIT_SUCCEEDED );
   
  }
void OnTick ()
  {
//---
   if (IsNewBar()== true ) //если новый бар включаемся
     {
     if (buy(pos)== true ) //если цена выше МА продолжаем
     {
       if (!ExistPositions( Symbol (),- 1 ,- 1 , 0 )) //если нету открых ордеров продолжаем
        {

         if (GetTypeLastClosePos( Symbol (),- 1 )!= OP_BUY ) //если тип последней закрытой позиции был не на покупку то тогда только покупаем таким образом я пред остерегаюсь от повторных входов в покупку если цена 
//все ещо выше МА...но почему то не работает открываются и дальше сделки на покупку если ордер закрылся выше МА....ХОТЯ НЕ ДОЛЖО ТАК КАК Я ОГРАНИЧИЛ ПО ТИПУ ПОЗИЦИИ ПОСЛЕДНЮЮ СДЕЛКУ И ОНИ ДОЛЖНЫ ТОЛЬКО 
//       ЧЕРЕДОВАТСЯ И УЖ НИ КАК НЕ ПОВТОРЯТСЯ ПО НЕСКОЛЬКО РАЗ ПОДРЯД
           {
            trade= true ;
           }
   if (trade== true )
        {
         OpenPosition( Symbol (), OP_BUY , 0.1 , Ask -sl* Point , Ask +tp* Point );
         trade= false ;
        }
}
        }
    
     
if (sell(pos)== true )
{
   if (!ExistPositions( Symbol (),- 1 ,- 1 , 0 ))
     {

       if (GetTypeLastClosePos( Symbol (),- 1 )!= OP_SELL )
        {
         trade2= true ;
        }

       if (trade2== true )
        {
         OpenPosition( Symbol (), OP_SELL , 0.1 , Bid +sl* Point , Bid -tp* Point );
         trade= false ;
      }
  }}
 }
  }

//возвращает истину если закрытие бара  с указаной позицией выше МА

bool buy( int pos)
  {
   if ( iClose ( Symbol (), 0 ,pos)>MA.Main( 1 ))
       return true ;
   else
       return false ;
  }
//+------------------------------------------------------------------+
//| возвращает истину если закрытие бара  с указаной позицией ниже МА
//+------------------------------------------------------------------+
bool sell( int pos)
  {
   if ( iClose ( Symbol (), 0 ,pos)<MA.Main( 1 ))
       return true ;
   else return false ;
  }
매매 조건 2가지를 제외한 모든 기능은 김씨 지점에서 가져옴...... 어디서 잘못했는지 알려주세요... 한 교차점에서 하나의 거래를 열어야 합니다
 

mql4 에서 보기에서 일부 코드를 숨기고 더하기 기호(+) 아래에 맞도록 코드 영역을 축소할 수 있습니까?

#region #endregion 샤프 에서와 같이 이러한 지시문 사이에 배치된 코드는 줄 바꿈할 수 있습니다.

 
무엇이 잘못되었는지 알 수 없습니까? 테스터에서는 모든 것이 작동하지만 실제 및 데모에서는 주문을 열려고 하면 "오류 0이 발생했습니다"라고 표시됩니다. GetLastError() 는 오류가 아닌 "0"을 반환합니다. 무슨 뜻인가요?
 
Leo59 :
무엇이 잘못되었는지 알 수 없습니까? 테스터에서는 모든 것이 작동하지만 실제 및 데모에서는 주문을 열려고 하면 "오류 0이 발생했습니다"라고 표시됩니다. GetLastError() 는 오류가 아닌 "0"을 반환합니다. 무슨 뜻인가요?

코드에서 그것은 그렇게 작성되었음을 의미합니다. 귀찮으면 수정하십시오.
 
evillive :

코드에서 그것은 그렇게 작성되었음을 의미합니다. 귀찮으면 수정하십시오.

주문이 열리지 않으면 어떻게 해야 합니까?