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

 
Legeo777 :

무엇이 잘못되었는지 이해하도록 도와주세요.

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

//| AAAA.mq4 |

//| |

//| |

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

#재산권 ""

#속성 링크 ""


외부 문자열 TimeStart = "00:00"; //제어 기간 시작 시간

외부 문자열 TimeEnd = "00:00"; //제어 기간 종료 시간


외부 이중 LOT = 0.01; // 많은

외부 int 매직 = 777; // 마법



더블 마가, 로트, SL, TP; // 마진, 로트, 손절매, 이익실현 변수 도입

int Total,Orders,tipOrders,TradeDey; // 변수 유형, 주문, 주문 유형, 거래일을 입력합니다.


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

//| 전문가 기능 |

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

int start() // 초기화 함수 시작

{

datetime Time_Start = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeStart, ":00")); // 시작 매개변수 //

datetime Time_End = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeEnd, ":00")); // 종료 매개변수 //



총=0; // 주문이 없는 경우

for(int i=1; i<=OrdersTotal(); i++) // 주문 반복

{

if (OrderSelect(i-1,SELECT_BY_POS)==false) // 시장가 주문이 없는 경우

{

if //If: - 제거
{

int BarStart = iBarShift(NULL,PERIOD_M1,Time_Start,false); //m1에서 제어 기간의 시작 막대를 검색합니다.

int BarEnd = iBarShift(NULL,PERIOD_M1,Time_End,false); //m1당 제어 기간 막대의 끝을 검색합니다.

더블 Max_Price=iHigh(NULL,0,iHighest(NULL,PERIOD_M1,MODE_HIGH,BarStart-BarEnd,BarEnd)); //구간에서 가장 높은 가격 값

이중 Min_Price=iLow(NULL,0,iLowest(NULL,PERIOD_M1,MODE_LOW, BarStart-BarEnd,BarEnd)); //구간에서 가장 낮은 가격 값

}

if (TimeCurrent()>Time_End && ObjectFind("bar0"+Time_End)==-1) // 그래픽 표시 설정

{

ObjectCreate("bar0"+Time_End, OBJ_RECTANGLE, 0, 0.0, 0.0);

ObjectSet("bar0"+Time_End, OBJPROP_STYLE, STYLE_SOLID);

ObjectSet("bar0"+Time_End, OBJPROP_COLOR, 파란색);

ObjectSet("bar0"+Time_End, OBJPROP_BACK, true);

ObjectSet("bar0"+Time_End, OBJPROP_TIME1,Time_Start);

ObjectSet("bar0"+Time_End, OBJPROP_PRICE1, Max_Price);

ObjectSet("bar0"+Time_End, OBJPROP_TIME2,Time_End);

ObjectSet("bar0"+Time_End, OBJPROP_PRICE2,Min_Price);

}

if (Bid<Max_Price) OrderSend(Symbol(),OP_BUYSTOP,LOT,Ask,3,Min_Price, //보류 BUY 주문을 하기 위한 조건 - 매도 또는 입찰로 보류 주문을 할 수 없습니다.

NormalizeDouble(Ask + Max_Price - Min_Price,Digits),"UPDD",Magic,Blue);

if (입찰가>최대_가격)

Comment("구매 대기 중인 주문을 할 수 없습니다.");

if (Bid>Min_Price) OrderSend(Symbol(),OP_SELLSTOP,LOT,Bid,3,Min_Price, //보류중인 SELL 주문을 위한 조건 - 동일

NormalizeDouble(Ask + Max_Price-Min_Price,Digits),"UPDD",Magic,Blue);

if (Bid<Max_Price) - 여기에 오류가 있을 수 있습니다.

Comment("보류중인 SELL 주문을 할 수 없습니다");

}

} - 추가

반품;

}

컴파일할 수 없습니다. 그렇지 않으면 그는 범위에서 위아래로 두 개의 보류 주문을 해야 합니다.

수정 후 컴파일해야하지만 작동하지 않을 가능성이 큽니다. 시간이 잘못 설정되고 가격이 정상화되지 않고 정류장이 시작 가격 에 가까운지 확인하지 않습니다.
 
아시는 분들은 보류 주문 에 23.59까지 존재 시간을 쓰는 방법을 알려주십시오. 즉, 고문이 주문했다면 현재 날짜의 23.59까지 존재했을 것입니다.
 
stater :
아시는 분들은 보류 주문에 23.59까지 존재 시간을 쓰는 방법을 알려주십시오. 즉, 고문이 주문했다면 현재 날짜 23.59까지 존재했을 것입니다.
datime exp = iTime ( Symbol (), PERIOD_D1 , 0 )+23*60*60+59*60;
 
Sepulca :


감사합니다! 하나의 터미널에서 얼마나 많은 어드바이저가 일할 수 있는지, 5 EURUSD 차트 를 열고, 5개의 다른 어드바이저를 던졌지만, 로그에는 첫 번째 어드바이저의 작업만 표시됩니다.

 

1000잔당 0.1랏이라는 조건으로 MM을 만드는 것이 더 합리적인 방법을 알려주세요.

여기에서 AccountBalance 또는 AccountEquity 중 무엇을 사용하는 것이 더 합리적입니까?

 

안녕하세요,

스크립트가 열려 있는 모든 차트 에서 실행되도록 스크립트(코드가 "OrderSend(Symbol(),OP_BUYSTOP...")에 추가될 수 있는 명령이 있습니까?

 
sss2019 :

1000잔당 0.1랏이라는 조건으로 MM을 만드는 것이 더 합리적인 방법을 알려주세요.

여기에서 AccountBalance 또는 AccountEquity 중 무엇을 사용하는 것이 더 합리적입니까?


하나의 주문을 여는 것은 중요하지 않으며, 개봉 당시에는 동일하고, 많으면 하나의 공식으로 충분하지 않습니다.
 
stater :

정말 감사합니다! 하나의 터미널에서 얼마나 많은 어드바이저가 일할 수 있는지, 5개의 EURUSD 차트를 열고, 5개의 다른 어드바이저를 던졌는데, 로그에는 첫 번째 어드바이저의 작업만 표시됩니다.



동일한 Expert Advisor일지라도 다른 통화 쌍에서 작동합니다. 하나의 차트에 하나만 있습니다. 하지만 같은 통화쌍의 다른 차트에서는 나도 모릅니다.....
 
Roger :

하나의 주문을 여는 것은 중요하지 않으며, 개봉 당시에는 동일하고, 많으면 하나의 공식으로 충분하지 않습니다.


나는 이미 여러 주문이 열려 있고 인출 상태이면 로트를 자기 자본으로 계산해야한다고 생각했습니다. 그렇지 않으면 잔액으로 계산하면 로트가 너무 커서 충분하지 않을 것입니다. 개설 자금.

1000 예금 0.1 랏에 대한 유사한 계산의 예를 보여주세요

 
로저 정말 감사합니다!!!!!