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

 
Alexandr24 :
전날 표시기 N의 최대값을 찾는 데 도움을 주세요. iCustom을 통해 데이터를 얻은 다음 막다른 골목에 있습니다. 이것이 ArrayMaximum을 통해 이루어진다는 생각이 있지만 하나의 값으로

다른 옵션이 떠오를 때까지 iCustom을 첨부하는 방법을 이해할 수 없습니다.



1. 전날의 시작 부분에 있는 막대 번호를 찾고, 끝 부분에 있는 막대 번호를 찾습니다.

2. 한 숫자에서 다른 숫자로 순환하면서 최대값을 찾습니다.

물론 ArrayMaximum 을 사용할 수도 있지만 첫 번째 단락 뒤에 있습니다.

 
프록시에 대해, 누군가 실제로 작동하는 IP가 필요한 경우 조언할 수 있습니다.
 

홍수로 인해 죄송합니다. 다시 질문하겠습니다.

신속한 무료 미결제약정 표시기. 미리 감사드립니다!

 
GSB :

당신은 그런 코드를 작성할 수 없습니다 :)

다음 댓글("USDCADAsk = ",USDCADAsk); 뒤에 USDCADAsk = DoubleToString(MarketInfo("USDCAD",MODE_ASK),usdcaddigits); USDCADAsk는 double로 선언되고 문자열을 삽입합니다.

그리고 다시 Digits .... ^) 그래서 포인트

그러한 실수를 스스로 찾으십시오. 아무도 당신을 위해 수정하지 않고 거래하지 않을 것입니다! 컴파일러는 28개의 오류를 생성하고 데모를 넣어도 거래하고 있습니다. 그것이 현실이 아니라는 것을 유감스럽게 생각하는 것만 남아 있습니다. 여기서 시장이 당신을 수정했을 것입니다!

이것은 누구의 입찰 요청입니까?


고치다


추가 변수를 사용할 필요가 없었고 정규화가 필요하지 않은 것으로 나타났습니다. 이렇게 해야 합니다.
 OrderSend ( "USDCAD" , OP_BUY ,Lot, MarketInfo ( "USDCAD" , MODE_ASK ),slip, 0 , 0 , "USDCAD" ,magic[ 0 ], 0 ,Red);
 
Example2 :

추가 변수를 사용할 필요가 없었고 정규화가 필요하지 않은 것으로 나타났습니다. 이렇게 해야 합니다.

 OrderSend ( "USDCAD" , OP_BUY ,Lot, MarketInfo ( "USDCAD" , MODE_ASK ),slip, 0 , 0 , "USDCAD" ,magic[ 0 ], 0 ,Red);

첫째, 자신이 확인을 위해 화면에 표시하려고 시도하여 오류가 발생했으며 두 번째로 정규화가 바람직하고 주문 및 TP, SL의 가격이 책정되었습니다. 비정규화된 가격은 오류를 유발할 수 있습니다. 이것은 규칙이며 어겨서는 안 됩니다. https://book.mql4.com/ru/samples/shared 와 같이 예제를 보고 왜 그렇지 않은지 분석하십시오.
 
안녕하세요! 어렵지 않다면 OrderOpenPrice에 23%를 추가하는 방법을 알려주십시오. OrderOpenPrice가 이미 77%인 것으로 알려진 경우. 77로 나누고 23을 곱하면 31이 아닌 7포인트가 됩니다. 다음은 (MarketInfo-OrderOpenPrice()>OrderOpenPrice()/50*Percent*Point)인 경우 코드 행입니다. 이것은 손익분기점으로의 전환이지만 포인트가 아니라 백분율로 표시됩니다. 미리 감사드립니다!
 
vidnab :
안녕하세요! 어렵지 않다면 OrderOpenPrice에 23%를 추가하는 방법을 알려주십시오. OrderOpenPrice가 이미 77%인 것으로 알려진 경우. 77로 나누고 23을 곱하면 31이 아닌 7포인트가 됩니다. 다음은 (MarketInfo-OrderOpenPrice()>OrderOpenPrice()/50*Percent*Point)인 경우 코드 행입니다. 이것은 손익분기점으로의 전환이지만 포인트가 아니라 백분율로 표시됩니다. 미리 감사드립니다!


나는 50 루블에 10 만 유로를 구입 한 다음 구매 가격에 23 %를 추가합니다.

귀하의 경우 코드를 전체적으로 배치해야 합니다. 100%로 가져오면 0.77로 나눕니다.

 

답변 해주셔서 감사합니다. 다음은 전체 코드입니다.

//+----------------------------------------------- ------------------------------+
//| e-MovingInWL2.mq4 |
//| |
//| Kim Igor V. 일명 KimIV |
//| http://www.kimiv.ru |
//| |
//| 2008년 10월 27일 EA는 스톱을 손익분기점으로 이동합니다. |
//+----------------------------------------------- ------------------------------+
#property copyright "Kim Igor V. aka KimIV"
#속성 링크 "http://www.kimiv.ru"

//------- EA의 외부 매개변수 ------------------------------------ -- ---+
extern string _P_Expert = "---------- 전문가 고문 옵션";
extern bool AllSymbols = True; // 모든 문자의 위치를 추적합니다.
extern int 매직 = -1; // 위치 식별자
extern int 레벨 이익 = 25; // 이익 수준(포인트)
외부 정수 레벨WLoss = 1; // 손익분기점 수준
extern bool ShowComment = True; // 주석 표시

//------- 거래 주문 실행을 위한 매개변수 ------------------------------+
extern string _P_Performance = "---------- 성능 매개변수";
extern bool UseSound = True; // 사운드 신호 사용
extern string SoundSuccess = "expert.wav"; // 성공 소리
외부 문자열 SoundError = "timeout.wav"; // 오류음
외부 정수 NumberOfTry = 2; // 거래 시도 횟수

//------- Expert Advisor의 전역 변수 ----------------------------------- --+
bool gbDisabled = 거짓; // EA 잠금 플래그
bool gbNoInit = 거짓; // 초기화 실패 플래그
색상 clModifyBuy = 아쿠아; // 구매 수정 아이콘 색상
color clModifySell = 토마토; // 판매 색상 수정 아이콘

//------- 외부 모듈 연결 --------------------------------------- ---+
#include <stdlib.mqh>


//+----------------------------------------------- ------------------------------+
//| |
//| 미리 정의된 기능 |
//| |
//+----------------------------------------------- ------------------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- ------------------------------+
무효 초기화() {
gbNoInit=거짓;
if (!IsTradeAllowed()) {
Message("Expert Advisor의 정상적인 작동을 위해서는 다음이 필요합니다.\n"+
"고문 거래 허용");
gbNoInit=참; 반품;
}
if (!IsLibrariesAllowed()) {
Message("Expert Advisor의 정상적인 작동을 위해서는 다음이 필요합니다.\n"+
"외부 전문가로부터 가져오기 허용");
gbNoInit=참; 반품;
}
if (!IsTesting()) {
if (IsExpertEnabled()) Message("다음 틱에 Expert Advisor가 실행됩니다.");
else Message("\"전문가 고문 실행 허용\"" 버튼이 비활성화되어 있습니다);
}
시작();
}

//+----------------------------------------------- ------------------------------+
//| 전문가 초기화 해제 기능 |
//+----------------------------------------------- ------------------------------+
무효 deinit() {
if (!IsTesting()) 주석("");
}

//+----------------------------------------------- ------------------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- ------------------------------+
무효 시작() {
if (gbDisabled) {
Message("심각한 오류입니다! 전문가 고문이 중지되었습니다!"); 반품;
}
if (gbNoInit) {
Message("전문가 어드바이저 초기화에 실패했습니다!"); 반품;
}
if (댓글 표시) {
Comment(IIFs(AllSymbols, "AllSymbols ", "")
,"Magic="+IIFs(Magic<0, "Any", DoubleToStr(Magic, 0))+" "
,"LevelProfit="+DoubleToStr(LevelProfit, 0)+"n "
,"LevelWLoss="+DoubleToStr(LevelWLoss, 0)+"n "
);
} else 주석("");

문자열 sy=IIFs(AllSymbols, "", NULL);
MovingInWL(sy, -1, Magic);
}


//+----------------------------------------------- ------------------------------+
//| |
//| 사용자 기능 |
//| |
//+----------------------------------------------- ------------------------------+
//| 저자 : Kim Igor V. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------- ------------------------------+
//| 버전: 2005년 9월 1일 |
//| 설명: 거래 작업의 이름을 반환합니다. |
//+----------------------------------------------- ------------------------------+
//| 옵션: |
//| op - 거래 작업 식별자 |
//+----------------------------------------------- ------------------------------+
문자열 GetNameOP(int op) {
스위치(작동) {
케이스 OP_BUY : return("구매");
케이스 OP_SELL : return("판매");
케이스 OP_BUYLIMIT : return("BuyLimit");
케이스 OP_SELLLIMIT: return("SellLimit");
케이스 OP_BUYSTOP : return("구매 중지");
케이스 OP_SELLSTOP : return("SellStop");
기본값 : return("알 수 없는 작업");
}
}

//+----------------------------------------------- ------------------------------+
//| 저자 : Kim Igor V. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------- ------------------------------+
//| 버전: 2008년 7월 18일 |
//| 설명 : 조건에 따라 두 값 중 하나를 반환합니다. |
//+----------------------------------------------- ------------------------------+
color IIFc(bool 조건, 색상 ifTrue, 색상 ifFalse) {
if(조건) return(ifTrue); 그렇지 않으면 반환(ifFalse);
}

//+----------------------------------------------- ------------------------------+
//| 저자 : Kim Igor V. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------- ------------------------------+
//| 버전: 2008년 2월 1일 |
//| 설명 : 조건에 따라 두 값 중 하나를 반환합니다. |
//+----------------------------------------------- ------------------------------+
문자열 IIFs(bool 조건, 문자열 ifTrue, 문자열 ifFalse) {
if(조건) return(ifTrue); 그렇지 않으면 반환(ifFalse);
}

//+----------------------------------------------- ------------------------------+
//| 저자 : Kim Igor V. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------- ------------------------------+
//| 버전: 2005년 9월 1일 |
//| 설명 : 댓글 및 로그에 메시지 출력 |
//+----------------------------------------------- ------------------------------+
//| 옵션: |
//| m - 메시지 텍스트 |
//+----------------------------------------------- ------------------------------+
무효 메시지(문자열 m) {
코멘트(m);
if (StringLen(m)>0) Print(m);
}

//+----------------------------------------------- ------------------------------+
//| 저자 : Kim Igor V. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------- ------------------------------+
//| 버전: 2006년 11월 28일 |
//| 설명 : 이전에 선택한 주문 중 하나를 수정합니다. |
//+----------------------------------------------- ------------------------------+
//| 옵션: |
//| pp - 주문 가격 |
//| sl - 가격 수준을 중지 |
//| tp - 가격 수준을 가져가라 |
//| 전 만료일 |
//+----------------------------------------------- ------------------------------+
무효 ModifyOrder(이중 pp=-1, 이중 sl=0, 이중 tp=0, 날짜 시간 ex=0) {
부울 FM;
색상 cl=IIFc(주문 유형()==OP_BUY
|| 주문 유형()==OP_BUYLIMIT
|| 주문 유형()==OP_BUYSTOP, clModifyBuy, clModifySell);
이중 op, pa, pb, os, ot;
int dg=MarketInfo(OrderSymbol(), MODE_DIGITS), 어, 그것;

if (pp<=0) pp=OrderOpenPrice();
if (sl<0) sl=OrderStopLoss();
if (tp<0) tp=OrderTakeProfit();

pp=NormalizeDouble(pp, dg);
sl=NormalizeDouble(sl, dg);
tp=NormalizeDouble(tp, dg);
op=NormalizeDouble(OrderOpenPrice(), dg);
os=NormalizeDouble(OrderStopLoss(), dg);
ot=NormalizeDouble(OrderTakeProfit(), dg);

if (pp!=op || sl!=os || tp!=ot) {
for (it=1; it<=NumberOfTry; it++) {
if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
동안 (!IsTradeAllowed()) 절전(5000);
새로 고침();
fm=OrderModify(OrderTicket(), pp, sl, tp, ex, cl);
만약 (fm) {
if (UseSound) PlaySound(SoundSuccess); 부서지다;
} 또 다른 {
er=GetLastError();
if (UseSound) PlaySound(사운드 오류);
pa=시장 정보(주문 기호(), MODE_ASK);
pb=MarketInfo(OrderSymbol(), MODE_BID);
Print("Error(",er,") 순서 수정: ",ErrorDescription(er),", try ",it);
Print("Ask=",pa," Bid=",pb," sy=",OrderSymbol(),
" op="+GetNameOP(주문 유형())," pp=",pp," sl=",sl," tp=",tp);
수면(1000*10);
}
}
}
}

//+----------------------------------------------- ------------------------------+
//| 저자 : Kim Igor V. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------- ------------------------------+
//| 버전: 2009년 4월 23일 |
//| 설명 : 정지 수준을 손익분기점으로 전환 |
//+----------------------------------------------- ------------------------------+
//| 옵션: |
//| sy - 악기 이름("" - 모든 문자, |
//| NULL - 현재 문자) |
//| 연산 - 연산(-1 - 임의의 위치) |
//| mn - MagicNumber( -1 - 모든 마법) |
//+----------------------------------------------- ------------------------------+
무효 MovingInWL(문자열 sy="", int op=-1, int mn=-1) {
이중 포, pp;
정수 i, k=OrdersTotal();

if (sy=="0") sy=Symbol();
(i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
po=시장 정보(주문 기호(), MODE_POINT);
if (주문유형()==OP_BUY) {
if (OrderStopLoss()-OrderOpenPrice()<LevelWLoss*po) {
pp=시장 정보(주문 기호(), MODE_BID);
if (pp-OrderOpenPrice()>LevelProfit*po) {
ModifyOrder(-1, OrderOpenPrice()+LevelWLoss*po, -1);
}
}
}
(주문 유형()==OP_SELL) {
if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()<LevelWLoss*po) {
pp=시장 정보(주문 기호(), MODE_ASK);
if (OrderOpenPrice()-pp>LevelProfit*po) {
ModifyOrder(-1, OrderOpenPrice()-LevelWLoss*po, -1);
}
}
}
}
}
}
}
}
//+----------------------------------------------- ------------------------------+

 
이것은 Igor Kim의 코드이지만 그에게 연락할 수 없습니다. 어려운 도움이 아니라면!
 
GSB :

첫째, 자신이 확인을 위해 화면에 표시하려고 시도하여 오류가 발생했으며 두 번째로 정규화가 바람직하고 주문 및 TP, SL의 가격이 책정되었습니다. 비정규화된 가격은 오류를 유발할 수 있습니다. 이것은 규칙이며 어겨서는 안 됩니다. https://book.mql4.com/en/samples/shared 와 같이 예제를 보고 왜 그렇지 않은지 분석하십시오.

다른 사람들이 볼 수 있게 하려고 이 글을 쓴 것이 아닙니다. 시간 내 주셔서 감사합니다.