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

 
Mathemat :

미안하지만 이것은 정확히 연대기(Annals)에 있습니다. 영어에 대한 무지는 변명의 여지가 없습니다.

솔직히 마이크로에서 EURUSD에 대한 스프레드가 무엇인지 모르겠습니다. 아마도 당신은 이 포럼에 입장하라는 명령을 받았을 것입니다. 이 나쁜 놈들은 항상 뭔가를 생각해 냅니다.

덕분에 등록할 수 있었습니다.
 

안녕하세요, 초등, 순간을 하나 도와주세요.

정수 시작()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,0,0);
경고(GetLastError());
반품;
}

스크립트는 시장 주문을 엽니다. 모든 것이 정상입니다. 그러나 SL 또는 TP 값을 설정하면 " 잘못된 정지 " 오류가 발생합니다.

정수 시작()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,Bid-50*Point,Bid+50*Point);
경고(GetLastError());
반품;
}

이 코드는 더 이상 작동하지 않습니다. 무슨 일이야? 따라잡을 수 없어...

정수 시작()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,1.31845,1.40000);
경고(GetLastError());
반품;
}

그리고 스톱과 이익의 수치를 입력해도 작동하지 않습니다. 주문에서 중지 주문까지의 최소 거리로 모든 것이 정상입니다.

 

친애하는 전문가 여러분! 질문이 있습니다. 여러 기준에 따라 거래하는 어드바이저가 있는데 어떻게 따로 주문을 수정하게 하나요? 예를 들어, 두 개의 BUY는 서로 다른 신호에 따라 시작됩니다. 하나는 손익분기 수준이 90pp이고 40단계이고 다른 하나는 50이고 50단계입니다. 시도하지 않으면 작동하지 않습니다. 아는 사람을 도와주세요. 미리 감사드립니다!

 
azik1306 :

친애하는 전문가 여러분! 질문이 있습니다. 여러 기준에 따라 거래하는 어드바이저가 있는데 어떻게 따로 주문을 수정하게 하나요? 예를 들어, 두 개의 BUY는 서로 다른 신호에 따라 시작됩니다. 하나는 손익분기 수준이 90pp이고 40단계이고 다른 하나는 50이고 50단계입니다. 시도하지 않으면 작동하지 않습니다. 아는 사람을 도와주세요. 미리 감사드립니다!

- 다른 매직 번호를 사용하여 다른 신호에 대한 거래 시작을 구성할 수 있습니다.

- 거래를 열 때 주석 필드에 "표시"(예: 동일한 트레일 레벨)를 입력한 다음 분석할 수 있습니다.

귀하의 질문에 대한 코드를 보지 않고는 별도로 정확히 무엇을 하고 싶은지 완전히 명확하지 않습니다.

 

코드는 다음과 같습니다.

for( int c=1; c<=OrdersTotal(); c++) // 순서를 통해 루프
{
주문선택(c-1,SELECT_BY_POS); // 다음이 있는 경우
// 주문 분석:
if(OrderMagicNumber()<1000)

if (R==1 && SL<OrderOpenPrice() && Bid-OrderOpenPrice()>((NoLoss)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*(NoLoss),OrderTakeProfit(),0,Blue);
반품;
}
if (R==2 && SL>OrderOpenPrice() && OrderOpenPrice()-Ask>((NoLoss)*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*(NoLoss),OrderTakeProfit(),0,Blue);
반품;
}
if (R==1 && SL>=OrderOpenPrice() && Bid - SL > ((NoLoss*Point)+(StepLoss*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss,OrderTakeProfit(),0,Blue);
반품;
}
if (R==2 && SL<=OrderOpenPrice() && SL-Ask>((NoLoss*Point)+(StepLoss*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss,OrderTakeProfit(),0,Blue);
반품;
}
반품;
}
//------------------------------------------------ --------------------

for(c=1; c<=OrdersTotal(); c++) // 루프 주문
{
주문선택(c-1,SELECT_BY_POS); // 다음이 있는 경우
// 주문 분석:
if (OrderMagicNumber()>1000)
if (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
반품;
}
if (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
반품;
}
if (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
반품;
}
if (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
반품;
}
반품;
}

//------------------------------------------------ --------------------
// 주문 비용
새로 고침(); // 데이터 업데이트
Min_Lot=시장정보(Symb,MODE_MINLOT); // 최소 수량 제비
무료=AccountFreeMargin(); // 사용 가능한 자금
One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// 1랏의 비용
단계 = MarketInfo(Symb,MODE_LOTSTEP); // 단계 크기 조정

if (Lots > 0) // 로트가 지정된 경우
lts=많음; // 우리는 그들과 함께 일한다
else // % 자유 자본
Lts=MathFloor(무료*Prots/One_Lot/Step)*Step;// 열려면

if(Lts < Min_Lot) Lts=Min_Lot; // 최소값보다 작지 않음
if (Lts*One_Lot > Free) // Lot는 무료보다 비쌉니다.
{
Alert(" ", Lts," lot에 대한 자금이 충분하지 않습니다.");
반품; // start()에서 종료
}
//------------------------------------------------ --------------- 여덟 --
// 오픈 오더

{
if (Total<2 && Opn_B==true && B==false)
{
// 오픈 기준 구입
새로 고침(); // 데이터 업데이트
SL=Bid - New_Stop(StopLoss)*포인트; // SL 열기를 계산합니다.
TP=Bid + New_Stop(TakeProfit)*포인트; // TP 오픈을 계산합니다.
Alert("구매를 열려고 합니다. 응답을 기다리는 중입니다..");
티켓=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP,NULL,y);//오픈 구매
if (티켓 > 0) // 성공 :)
{
Alert("구매 주문 오픈",티켓);
B=참;
S=거짓;
Y=OrderMagicNumber();
R=1;
반품; // start()에서 종료
}
if (Fun_Error( GetLastError() )==1) // 오류 처리
계속하다; // 재시도
// start()에서 종료
}
if (Total<2 && Opn_S==true && S==false) // 주문을 엽니다. 아니 +
{
수면(10000); // 오픈 기준 팔다
새로 고침(); // 데이터 업데이트
SL=Ask + New_Stop(StopLoss)*포인트; // SL 열기를 계산합니다.
TP=Ask - New_Stop(TakeProfit)*포인트; // TP 오픈을 계산합니다.
Alert("판매를 열려고 합니다. 응답을 기다리는 중입니다..");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP,NULL,y);//Open Sel
if (티켓 > 0) // 성공 :)
{
Alert("판매 주문 오픈",티켓);
S=참;
b=거짓;
Y=OrderMagicNumber();
R=2;
반품; // start()에서 종료
}
if (Fun_Error(GetLastError())==1) // 오류 처리
계속하다; // 재시도
// start()에서 종료
}

if (Total<2 && Opn_B1==true && B1==false)
{
새로 고침(); // 데이터 업데이트
SL1=입찰가 - New_Stop1(StopLoss1)*포인트; // SL 열기를 계산합니다.
TP1=Bid + New_Stop1(TakeProfit1)*포인트; // TP 오픈을 계산합니다.
Alert("구매를 열려고 합니다. 응답을 기다리는 중입니다..");
티켓=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL1,TP1,NULL,x);//오픈 구매
if (티켓 > 0) // 성공 :)
{
Alert("구매 주문 오픈",티켓);
B1=참;
S1=거짓;
X=OrderMagicNumber();
Z=3;
반품; // start()에서 종료
}
if (Fun_Error(GetLastError())==1) // 오류 처리
계속하다; // 재시도
// start()에서 종료
}
if (Total<2 && Opn_S1==true && S1==false) // 오픈 주문. 아니 +
{
수면(10000); // 오픈 기준 팔다
새로 고침(); // 데이터 업데이트
SL1=매도 + New_Stop1(StopLoss1)*포인트; // SL 열기를 계산합니다.
TP1=매도 - New_Stop1(TakeProfit1)*포인트; // TP 오픈을 계산합니다.
Alert("판매를 열려고 합니다. 응답을 기다리는 중입니다..");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL1,TP1,NULL,x);//Open Sel
if (티켓 > 0) // 성공 :)
{
Alert("판매 주문 오픈",티켓);
S1=참;
B1=거짓;
X=OrderMagicNumber();
Z=4;
반품; // start()에서 종료
}
if (Fun_Error(GetLastError())==1) // 오류 처리
계속하다; // 재시도
// start()에서 종료
}
부서지다; // 종료하는 동안
}

 
orderselect와 마술을 통해 시도했지만 고문은 주문을 혼동합니다.
 
azik1306 :

코드는 다음과 같습니다.


이러한 넓은 코드를 파일에 첨부하거나 SRC(상단 편집 막대에서 선택됨)를 통해 극단적으로 첨부하십시오. 그렇지 않으면 눈이 그러한 행을 읽는 것이 피곤합니다.
 
azik1306 :

코드는 다음과 같습니다.

for( int c=1; c<=OrdersTotal(); c++) // 순서를 통해 루프
{
주문선택(c-1,SELECT_BY_POS); // 다음이 있는 경우
// 주문 분석:
if(OrderMagicNumber()<1000)
if (R==1 && SL<OrderOpenPrice() && Bid-OrderOpenPrice()>((NoLoss)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*(NoLoss),OrderTakeProfit(),0,Blue);
반품;
}
if (R==2 && SL>OrderOpenPrice() && OrderOpenPrice()-Ask>((NoLoss)*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*(NoLoss),OrderTakeProfit(),0,Blue);
반품;
}
if (R==1 && SL>=OrderOpenPrice() && Bid - SL > ((NoLoss*Point)+(StepLoss*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss,OrderTakeProfit(),0,Blue);
반품;
}
if (R==2 && SL<=OrderOpenPrice() && SL-Ask>((NoLoss*Point)+(StepLoss*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss,OrderTakeProfit(),0,Blue);
반품;
}
반품;
}
//------------------------------------------------ --------------------
// 원칙적으로 더 이상 쓸 수 없습니다. 어쨌든 실행되지 않습니다.

for(c=1; c<=OrdersTotal(); c++) // 루프 주문

{
주문선택(c-1,SELECT_BY_POS); // 다음이 있는 경우
// 주문 분석:
if (OrderMagicNumber()>1000)
if (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
반품;
}

if (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
반품;
}
if (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
반품;
}
if (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
반품;
}
반품; // 하지만 '신뢰성'을 위해 '컨트롤 샷'도 만들었습니다.)
}

........... 다른건 상관없어요........

//

//------------------------------------------------ --------------------
// 주문 비용

 
감사합니다, 지금 시도하겠습니다
 
코드를 수정했지만 어드바이저가 각 주문에 개별적으로 접근하는 것을 원하지 않습니다.