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

 
drknn :
그리고 갑자기 거기에 60이 아니라 70 달러의 코드가 있습니까? :) ;)
업그레이드 해봅시다 :)
 
veti-k :
여기요! 플러스 포인트에서 롤링 핀 순서를 결정하는 방법을 알려주십시오.
매수 포지션 이 열리면 현재 입찰 가격에서 포지션 개시 가격을 빼야 합니다. 포지션이 매도인 경우 시가에서 현재 매도호가를 뺍니다.
 
paladin80 :
매수 포지션이 열리면 현재 입찰 가격에서 포지션 개시 가격을 빼야 합니다. 포지션이 매도인 경우 시가에서 현재 매도호가를 뺍니다.

Scouts는 Bid 또는 Ask 대신 OrderClosePrice()를 사용할 수 있다고 보고했습니다.
 
시도해보겠습니다 감사합니다))
 
포럼 사용자 여러분, iCustom 에서 ArrayMaximum으로 변수를 푸시하는 방법을 알려주십시오.
 
Alexandr24 :
포럼 사용자 여러분, iCustom에서 ArrayMaximum으로 변수를 푸시하는 방법을 알려주십시오.
이렇게 하려면 ArrayMaximum이 무엇인지 읽어야 합니다.

int ArrayMaximum( 이중 배열[], int count=WHOLE_ARRAY, int start=0)

최대값을 가진 요소를 검색합니다. 이 함수는 배열에서 최대 요소의 위치를 반환합니다.

검색은 변수가 아니라 과정입니다. 즉, 배열 요소 에 표시자 값을 할당한 다음 ArrayMaximum을 사용하여 배열에서 가장 큰 요소를 검색할 수 있습니다.
 
granit77 :
이렇게 하려면 ArrayMaximum이 무엇인지 읽어야 합니다.

int ArrayMaximum( 이중 배열[], int count=WHOLE_ARRAY, int start=0)

최대값을 가진 요소를 검색합니다. 이 함수는 배열에서 최대 요소의 위치를 반환합니다.

검색은 변수가 아니라 과정입니다. 즉, 배열 요소에 표시자 값을 할당한 다음 ArrayMaximum을 사용하여 배열에서 가장 큰 요소를 검색할 수 있습니다.
어제 지표 의 최대값을 찾는 방법을 알려주실 수 있습니까? 어제 지표의 첫 번째와 극한 값을 찾았지만 어제의 최대 값을 찾을 수 없습니다. ArrayMaximum이 전체 차트 검색을 시작하거나 다른 기능을 통해 수행 된 것입니까?
 

안녕하세요 여러분, 저는 컴퓨터 앞에 앉아서 키보드에 머리를 두드리고 있습니다. 코드에서 하나의 오류를 수정할 수 없습니다... 초보자를 도와주세요.

내 올빼미 코드는 다음과 같습니다.

extern double 이익실현 = 500;

extern 이중 로트 = 0.1;

외부 이중 손절매 = 30;

extern 이중 후행 정지 = 30;

외부 문자열 Indicator_1 = "SAR(SAR_STEP)";

외부 이중 SAR_Step = 0.02;

외부 이중 SAR_MaxStep = 0.2;

외부 이중 GeneralShift = 0; // 0 - 닫히지 않은 막대, 1 - 닫힘.

// 다음은 다음과 같은 변수입니다.

// 동안 표시

// 전문가와 차트의 연결


//+----------------------------------------------- --------------------+

//| |

//+----------------------------------------------- --------------------+

정수 시작()

{

이중;

intb;

int 합계, 티켓, cnt;


// 프로그램에서 사용할 변수


if(막대<100)

{

Print("막대가 100개 미만입니다.");

리턴(0);

}

// 이 조건은 차트 기록에 100개 이상의 촛대가 있는지 확인하고 그렇지 않은 경우

// 오류 메시지를 제공합니다. 문제에 주의를 환기시키는 데 필요합니다.

// 정보 부족


if( 이익실현<5)

{

Print("5보다 작은 TakeProfit");

리턴(0);

}

// 이 조건은 이익 실현 수준(외부 변수 중 하나의

// 차익실현 수준을 제어합니다. 여부를 확인하는 데 필요

// DC에 대해 허용되지 않는 수익 창출 수준을 설정했습니까?

// 수준. 고문이 작동하지 않으면 명확하게 알 수 있도록 만 필요합니다.

// 여기서 무엇이 잘못되었는지. 두는 것이 좋습니다.


총계=주문총계();

if(총<1)

// 이 검사는 한 번에 여러 개의 동일한 위치를 열지 않기 위해 필요합니다. 그것이 존재하지 않는 경우, 예를 들어 스토캐스틱이 과매수 영역에 있을 때 Expert Advisor가 트리거되면 전체 마진을 사용할 때까지 매 틱마다 거래를 합니다.

// 따라서 열린 위치의 수를 제한하려면 다음을 입력하십시오.

// 구분자. 그렇다면 고문은 특정 이상을 열지 않습니다

// 위치 수 <x

{

// 미결 주문이 식별되지 않음

if(AccountFreeMargin()<(1000*Lots));

{

Print("돈이 없습니다. Free Margin = ", AccountFreeMargin());

리턴(0);

}

// 또 다른 도우미 코드입니다. 계정에 자금이 충분하지 않은 경우

// 오류가 발생합니다. 고문이 일하면 이 조각은 완전히 쓸모가 없다

// 실시간이지만 백테스팅에 매우 유용합니다.


if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>닫기[0]); // 매수 열기

// 마지막으로 가장 흥미로운 부분에 도달했습니다. 이 X 대신 다음을 삽입해야 합니다.

// 구매가 발생하는 조건.


{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-Stoploss*Point, Ask+TakeProfit*Point,"댓글",16384,0,Green);


// 구매조건입니다. 원칙적으로 여기에서 변경할 필요는 없지만 확장하려면

// Outlook, 여기에 쓰여진 내용을 해독하겠습니다. 무엇을 사야하는지 여기에 나와 있습니다.

// (OP_BUY) 현재 기호(EA가 연결된 통화 쌍),

// 거래 규모 Lot(처음에 설정한 변수). 시장 가격, s

// 슬리피지 3, 손절매 및 이익실현 설정

// 처음에 거래는 정의 번호 0과 함께 "주석" 주석과 함께 진행됩니다.

// 구매 장소, 차트에 정의 코드가 있는 녹색 화살표가 있습니다.

// 16384


if(티켓>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("구매 주문이 열렸습니다: ",OrderOpenPrice());

}

else Print("구매 주문 열기 오류: ",GetLastError());

리턴(0);

}


// 이 블록은 모든 것이 순조롭게 진행되었는지 여부를 기록하는 데만 필요합니다.

// 그렇지 않으면 실패를 유발한 오류를 기록합니다.


// 이제 판매율과 동일하게 수행합니다. YYYYYYYY 대신 - 조건

if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)<닫기[0])

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+Stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red);

if(티켓>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print(" SELL 주문 이 열렸습니다 : ",OrderOpenPrice());

}

else Print("판매 주문 열기 오류: ",GetLastError());

리턴(0);

}

리턴(0);

}


// 이제 출구입니다. 여기에서도 아무 것도 변경되지 않았습니다. RRRRRRR - 조건

// BUY로 거래 성사, ZZZZZZZZ - SELL로


for(cnt=0;cnt

//for'의 도움으로 모든 열린 위치가 정렬됩니다.

{

주문 선택(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()<=OP_SELL && // 열린 위치 확인

OrderSymbol()==Symbol()) // 기호 확인

{

if(OrderType()==OP_BUY) // 롱 포지션 오픈

{

// 닫아야 하나?

if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)<Close[0]) //구매 종료.

{

OrderClose(OrderTicket(),OrderLots(), 입찰, 3, 보라색); // 닫기 위치

리턴(0); // 출구

}

// 후행 정지 확인

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

리턴(0);

}

}

}

}

else // 숏 포지션과 동일

{

// 닫아야 하나?

if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>닫기[0])//판매 종료

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,바이올렛); // 닫기 위치

리턴(0); // 출구

}

// 후행 정지 확인

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

리턴(0);

}

}

}

}

}

}

}

리턴(0);

//--------

}

//-------- 끝.

 

초보 오토트레이더는 실수를 따라하지 않습니다!!! 누구든지 도와주세요!!!!!!!!!!!!!!!!!!!!!!!!!

'}' - 불균형 괄호 C:\Program Files (x86)\Forex4you MetaTrader 4\experts\Sarantos V101.mq4 (167, 1)

 
또 다른 방법은 이러한 코드 형식으로 머리를 굴리지 않을 것입니다. 수정하겠습니다 :)