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

 
rigonich :


필요한 매개변수로 보류 중인 주문을 하기만 하면 됩니다.

PS Expert Advisor에서 - 주문을 연 직후.

그리고 코드는 무엇입니까?
 
yosuf :
그리고 코드는 무엇입니까?


정수 OrderSend ( 문자열 기호, int cmd, 이중 볼륨, 이중 가격, int 미끄러짐, 이중 손절매, 이중 이익 실현, 문자열 주석=NULL, int magic=0, datetime 만료=0,arrow_color=CLR_NONE)
, 포지션을 열거나 보류 중인 주문을 하는 데 사용되는 주요 기능입니다.
거래 서버가 주문에 할당한 티켓 번호를 반환하거나 실패할 경우 -1을 반환합니다. 오류에 대한 자세한 정보를 얻으려면 GetLastError() 함수를 호출해야 합니다.
비고.
시장가 주문(OP_SELL 또는 OP_BUY)을 열 때 가장 최근의 Bid (판매) 또는 Ask (구매) 가격만 시작 가격으로 사용할 수 있습니다. 현재 금융 상품이 아닌 다른 금융 상품에서 작업을 수행하는 경우 이 상품에 대한 최신 호가를 얻으려면 MODE_BID 또는 MODE_ASK 매개변수와 함께 MarketInfo() 함수를 사용하십시오. 계산되거나 정규화되지 않은 가격은 사용할 수 없습니다. 요청한 공개 가격이 가격 피드에 없거나 요청한 가격이 소수점 이하 자릿수 에 따라 정규화되지 않은 경우 오류 129(ERR_INVALID_PRICE)가 생성됩니다. 요청한 시가가 매우 오래된 경우 slippage 매개변수의 값에 관계없이 오류 138( ERR_REQUOTE )이 생성됩니다. 요청한 가격이 구식이지만 가격 흐름에 여전히 존재하는 경우 현재 가격이 가격 +- 슬리피지 범위 내에 있는 경우에만 현재 가격으로 포지션이 열립니다.

StopLoss 및 TakeProfit 가격은 시장에 너무 근접할 수 없습니다. 최소 정지 거리는 MODE_STOPLEVEL 매개변수와 함께 MarketInfo() 함수를 사용하여 얻을 수 있습니다. 오류 130(ERR_INVALID_STOPS)은 잘못된 정지와 비정규 정지의 경우 생성됩니다.

보류 주문을 할 때 시가는 시장에 너무 가깝지 않아야 합니다. MODE_STOPLEVEL 매개변수와 함께 MarketInfo() 함수를 사용하여 현재 시장 가격에서 보류 중인 가격의 최소 거리(포인트)도 얻을 수 있습니다. 보류 중인 주문의 시작 가격이 잘못된 경우 오류 130(ERR_INVALID_STOPS)이 생성됩니다.

일부 거래 서버는 보류 중인 주문 만료 날짜의 사용을 금지할 수 있습니다. 이 경우 만료 매개변수에 0이 아닌 값을 설정하려고 하면 오류 147(ERR_TRADE_EXPIRATION_DENIED)이 생성됩니다.

일부 거래 서버는 총 미결 주문 및 보류 주문 수에 제한이 있을 수 있습니다. 이 한도를 초과하면 새 위치가 열리지 않고(대기 중인 주문이 설정되지 않음) 거래 서버는 오류 148(ERR_TRADE_TOO_MANY_ORDERS)을 반환합니다.
옵션:
기호 - 거래 작업이 수행되는 금융 상품의 이름입니다.
cmd - 거래 운영. 거래 작업 값 중 하나일 수 있습니다.
용량 - 로트 수.
가격 - 개봉 가격.
슬립 페이지 - 시장 주문(구매 또는 판매 주문)에 대한 최대 허용 가격 편차.
손절하다 - 손실 수준(손실 수준이 없는 경우 0)에 도달했을 때 포지션 종가.
이익을 취하다 - 이익 수준에 도달했을 때 위치의 종가입니다(이익 수준이 없는 경우 0).
논평 - 주문 코멘트 텍스트. 댓글의 마지막 부분은 거래 서버에 의해 변경될 수 있습니다.
마법 - 주문의 매직 넘버. 사용자 정의 식별자로 사용할 수 있습니다.
만료 - 보류 중인 주문의 만료 날짜입니다.
arrow_color - 차트에서 시작 화살표의 색상입니다. 매개변수가 없거나 해당 값이 CLR_NONE과 같으면 시작 화살표가 차트에 표시되지 않습니다.
예시:
 인트 티켓;
  if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25)
    {
     ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point,"내 주문 번호"+카운터,16384,0,Green);
     if(티켓<0)
       {
        Print("오류 번호로 인해 OrderSend가 실패했습니다.",GetLastError());
        반환(0);
       }
    }
주문주문선택 내역 총계
 
lottamer :

컴파일러에서 코드가 24개의 오류를 생성했지만!!! 어쨌든, 부주의한 도움에도 감사합니다.... 아이디어에 대해... (이제 작동합니다. 기본적으로 이것을 시도했지만 구두점이 실패했습니다)


컴파일은 안하고 괄호만 넣었어요! 그렇지 않으면 전혀 작동하지 않았습니다. 나는 그들이 어떻게 되어야 하는지를 보여주었다. 더군다나 그 논리는 여전히 이해할 수 없다. 나는 다음 플래그를 설정할 때마다 이전 조건의 반대인지 "물어보고" 동시에 플래그의 정확성을 확인하는 것을 기억합니다 ...

사실 첫댓글로 도움말을 참고해서 백번은 수정해보라고 권했습니다.

 
뉴비에게 말해줘!!!! 터미널에서 어드바이저가 비활성화되어 있지만 손절매가 발생했습니다. 이것이 가능합니까?
 
tolik73 :
뉴비에게 말해줘!!!! 터미널에서 어드바이저가 비활성화되어 있지만 손절매가 발생했습니다. 이것이 가능합니까?

틀림없이.
 
tolik73 :
뉴비에게 말해줘!!!! 터미널에서 어드바이저가 비활성화되어 있지만 손절매가 발생했습니다. 가능합니까?

불가능하지만 확실히. Stoploss는 서버에 있으며 후행 중지와 달리 터미널 작동에 의존하지 않습니다.
 
lottamer :

컴파일러에서 코드가 24개의 오류를 생성했지만!!! 어쨌든, 부주의한 도움에도 감사합니다.... 아이디어에 대해... (이제 작동합니다. 기본적으로 이것을 시도했지만 구두점이 실패했습니다)

일반적으로 이것은 다른 사람이 부분적으로 수정한 귀하의 코드입니다.
 
매주 시가 로 차트에 선이 표시되도록 스크립트를 작성하도록 도와주세요.
 

타라스비

정수 초기화()

{

{
fGet_MineGV();
}
void fGet_MineGV(문자열 fs_PrefName = "") // 변수 이름 접두사
{
문자열 ls_Name = StringConcatenate(fs_PrefName, Symbol(), "_N_1");
if ( GlobalVariableCheck (ls_Name)) SUA = GlobalVariableGet(ls_Name);
ls_Name = StringConcatenate(fs_PrefName, Symbol(), "_N_2");
if (GlobalVariableCheck(ls_Name)) SUA1 = GlobalVariableGet(ls_Name);
ls_Name = StringConcatenate(fs_PrefName, Symbol(), "_N_3");
if (GlobalVariableCheck(ls_Name)) BUA = GlobalVariableGet(ls_Name);
ls_Name = StringConcatenate(fs_PrefName, Symbol(), "_N_4");
if (GlobalVariableCheck(ls_Name)) BUA1 = GlobalVariableGet(ls_Name);
//----
}

//... 더 많이 있습니다...

}

int start()의 두 번째 부분

한 것이 맞습니까?

 
Macros :
매주 시가로 차트에 선이 표시되도록 스크립트를 작성하도록 도와주세요.

도움이나 글을 쓰시겠습니까? 당신이 도움이된다면, 당신은 이미 무엇을 썼습니까?