#property strict#include <Indicators\Trend.mqh>
bool ind;
CiMA MA;
externint pos= 1 ;
externint sl= 40 ;
externint tp= 70 ;
datetime time;
datetime time2;
bool trade= false ;
bool trade2= false ;
int a,b;
intOnInit ()
{
//---
MA.Create( Symbol (), PERIOD_CURRENT , 10 , 6 , MODE_EMA , PRICE_CLOSE ); //создал машку//---return ( INIT_SUCCEEDED );
}
voidOnTick ()
{
//---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 ))
returntrue ;
elsereturnfalse ;
}
//+------------------------------------------------------------------+//| возвращает истину если закрытие бара с указаной позицией ниже МА//+------------------------------------------------------------------+bool sell( int pos)
{
if ( iClose ( Symbol (), 0 ,pos)<MA.Main( 1 ))
returntrue ;
elsereturnfalse ;
}
매매 조건 2가지를 제외한 모든 기능은 김씨 지점에서 가져옴...... 어디서 잘못했는지 알려주세요... 한 교차점에서 하나의 거래를 열어야 합니다
나는 Flive 신호를 사용하지만 때로는 주문을 직접 마감하고 싶습니다. 하지만 닫으면 다시 열립니다. 어떻게든 해결될 수 있을까요?
"위치 동기화 ..."를 선택 취소하십시오.
나는 두 개의 월별 극한값이 있다고 가정했습니다 - 최소값과 최대값 ... 글쎄, 신의 축복이 있기 때문에 처음에는 코드가 길어서 도움을 요청했지만 ... 그것이 나에게 깨달아 4에 맞습니다. 윤곽.
이것은 월간 양초에 있는 경우입니다. 물론 iHigh(Symbol(), PERIOD_MN1 , BarOfMonth); 및 iLow(Symbol(), PERIOD_MN1, BarOfMonth);
그리고 한 달 안에 일일 차트에서 극단적인 가격을 찾아야 하는 경우 최소한 28개의 막대에 둘 이상의 극단값이 있을 것입니다.)
기능에 대한 또 다른 질문
예를 들어 지정된 가격으로 앞으로 5개의 막대를 앞으로 그리고 다시 그리지 않고 직사각형을 그리는 방법
"Object_name"이라는 이름에는 생성 시간이 포함되어야 합니다. 예를 들어 "Object_name"+TimeToString(Time[0]); 그러면 각 사각형은 고유한 이름을 갖게 됩니다.
0 막대에서 오른쪽으로 이동을 설정하려면 Time[0] 에 필요한 수의 막대 를 추가해야 합니다. 예를 들어 Time[0]+Period()*5*60(막대 5개 추가됨)
mql4 에서 보기에서 일부 코드를 숨기고 더하기 기호(+) 아래에 맞도록 코드 영역을 축소할 수 있습니까?
#region #endregion 샤프 에서와 같이 이러한 지시문 사이에 배치된 코드는 줄 바꿈할 수 있습니다.
무엇이 잘못되었는지 알 수 없습니까? 테스터에서는 모든 것이 작동하지만 실제 및 데모에서는 주문을 열려고 하면 "오류 0이 발생했습니다"라고 표시됩니다. GetLastError() 는 오류가 아닌 "0"을 반환합니다. 무슨 뜻인가요?
코드에서 그것은 그렇게 작성되었음을 의미합니다. 귀찮으면 수정하십시오.
코드에서 그것은 그렇게 작성되었음을 의미합니다. 귀찮으면 수정하십시오.
주문이 열리지 않으면 어떻게 해야 합니까?