[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 390

 
chief2000 >> :

브로커의 MT에서 CSV 파일(1999년 1분)을 내보냈습니다. 다른 브로커를 MT로 가져오려고 했습니다. 1분 남았습니다.

1999년부터 문제 없습니다. 하지만 2nd MT에서 5분, 15분 등을 얻는 방법을 이해하지 못합니다. 차트? - 즉. 가져오기 1분 후 로 전환

5분 차트를 보면 MT가 이미 가지고 있는 1분에서 변환하는 대신 인터넷에서 다운로드하려고 하는 것 같습니다.

과부하된 MT - 도움이 되지 않았습니다.

- 1MIN을 더 높은 시간 프레임으로 변환하는 일반적인 솔루션이 있습니까?

글쎄, 자연스럽게 이력서가있을 것입니다. 왜 갑자기 분에서 변환되어야합니까?

원본 CSV를 가져 와서 자체 작성 프로그램으로 실행하여 출력 파일의 모든 표준 시간 프레임을 가져와 가져올 수 있습니다.

 

안녕하세요!

어떤 식으로든 간단한 알고리즘을 구현할 수 없습니다.

매수/매도 후 2바 후 주문을 마감합니다.

나는 타이머보다 더 좋은 것을 생각할 수 없지만 타이머에는 시간 프레임에 대한 링크가 있으며 n개의 막대에서 필요합니다.

 

안녕하세요, 제가 스스로 대답할 수 없는 질문을 거듭 거듭 말씀드립니다.

조건이 나타날 때 주문을 교육하기 위해 Expert Advisor를 쓰고 있습니다. 작업은 간단합니다. 하나의 포지션만 거래하는 것입니다. 따라서 가격이 MA10보다 높으면 매수, 더 낮으면 매도합니다. 또한, 나는 또한 주문 마법을 사용할 가능성을 테스트하고 있습니다. 전문가가 자신이 내린 주문을 정확히 마감할 수 있도록 하기 위해서입니다. 그리고, 매매 조건의 두 번째 버전이 있습니다(아직 추가하지 않았습니다). 그리고 그 자신이 주문이 속하는 조건을 결정하도록 - 마술은 위치를 여는 기능에 설정됩니다. 또한 조건에 따라 초반에 포지션이 있는지 없는지 판단하고 매수조건 검색으로 이동하거나 매도조건 검색으로 이동해야 합니다.


코드는 다음과 같습니다.


// Мувинг и цена
double MA10;
double Price;
// Есть или нет позиция и ее номер
int Pos;
int Magic;
double Lot=0.1;
double SL;
double TP;
int Slippage=3;

//--------------------------------------------------------------------

void start()
{
MA10 = iMA(NULL,0,10,0,0,0,0);
Price = Bid;

CheckPos();
}

//--------------------------------------------------------------------

void CheckPos()
{
if(Pos==0)
CheckBuy();
CheckSell();
}

//--------------------------------------------------------------------
// Поиск условий для покупки и продажи
//--------------------------------------------------------------------

void CheckBuy()
{
if (NormalizeDouble(Price,Digits) > NormalizeDouble(MA10,Digits))
Magic=10;
Buy();
return;
}

//--------------------------------------------------------------------

void CheckSell()
{
if (NormalizeDouble(Price,Digits) < NormalizeDouble(MA10,Digits))
Sell();
return;
}

//--------------------------------------------------------------------
// Выставление ордеров
//--------------------------------------------------------------------

void Buy()
{
string Symb=Symbol();
Pos=1;

OrderSend(Symb, OP_BUY, Lot, Ask, Slippage, SL, TP, NULL, Magic);
return;
}
//--------------------------------------------------------------------

void Sell()
{
Pos=0;
OrderClose(Magic, Lot, Bid, Slippage);
return;
}


그리고 그는 감염이 하나의 포지션만 거래해야 한다는 사실에도 불구하고(있는 경우 - 우리는 판매 조건을 찾고 있고, 아니요 - 우리는 구매 조건을 찾고 있습니다) 많은 수의 포지션을 열고 , 그런 다음 닫지 않습니다. 나는 이미 내 머리를 부러뜨렸다. 무슨 일이야?

 
sigma7i >> :

안녕하세요!

어떤 식으로든 간단한 알고리즘을 구현할 수 없습니다.

매수/매도 후 2바 후 주문을 마감합니다.

나는 타이머보다 더 좋은 것을 생각할 수 없지만 타이머에는 시간 프레임에 대한 링크가 있으며 n개의 막대에서 필요합니다.


열린 주문을 살펴보고 언제 열렸는지 확인하고 현재 시간과 비교하면 두 개의 막대가 지나고 닫힙니다.
 
splxgf >> :

글쎄, 자연스럽게 이력서가있을 것입니다. 왜 갑자기 분에서 변환되어야합니까?

원본 CSV를 가져 와서 자체 작성 프로그램으로 실행하여 출력 파일의 모든 표준 시간 프레임을 가져와 가져올 수 있습니다.

MT5와 혼동되는 것 같습니다. 1분에서 더 높은 시간 프레임이 생성되는 것 같지만 MT4에서는 모든 것이 이전과 동일합니다.

 
Vinin >> :

CodeBase의 스크립트가 있고 마침표 변환기가 호출됩니다.

고맙습니다!

 

차트를 위한 기간 변환기는 할 수 있지만 테스터에게 제공할 수는 없습니다.

앗, 작동원리를 보니 아직 녹음된 히스토리 파일 이 그곳에 기록되어 있습니다. https://www.mql5.com/ru/code/8560

 

И вот он, зараза, несмотря на то, что должен торговать только одной позицией (есть - ищем условия на продажу, нет - ищем условия на покупку), открывает большое количество позиций, и потом их не закрывает. Я уже голову поломал. Подскажите, что не так?

CheckBuy에서 미결 주문이 0보다 크면 추가한 다음 종료합니다.

 
splxgf >> :

CheckBuy에서 미결 주문이 0보다 크면 추가한 다음 종료합니다.

네, 추가하겠습니다. 고맙습니다.

하지만 여전히 - 그는 왜 내 포지션을 사나요? 결국 처음에는 자리가 있으면 여기로 가지 말고 거기로 가라는 말을 즉시 듣습니다. 그는 계획대로 이 코드 조각에 들어가지 않아야 합니다. 또는 내가 이해하지 못하는 것은 무엇입니까?

 
Jahspear >> :

네, 추가하겠습니다. 고맙습니다.

하지만 여전히 - 그는 왜 내 포지션을 사나요? 결국 처음에는 자리가 있으면 여기로 가지 말고 거기로 가라는 말을 즉시 듣습니다. 그는 계획대로 이 코드 조각에 들어가지 않아야 합니다. 또는 내가 이해하지 못하는 것은 무엇입니까?


지금은 코드를 자세히 살펴보았지만 0.5리터 없이는 코드를 파악할 수 없습니다. 이제 ICQ를 던지고 거기서 무엇을 만들었는지 설명하겠습니다.