묻다! - 페이지 31

 
if (FirstRun==1) {

FirstRun=0;

prevtime=Time[0];

}

if ((prevtime == Time[0]) && (CurTime()-prevtime)>MaxTradeTime) {

NewBar=0;

}

else {

prevtime

찾았어요! 앞으로도 그렇게 할 것입니다 - 우리가 이해하지 못하는 영역에서 우리보다 더 많은 지식과 지혜를 가진 다른 사람들의 도움으로 배우게 됩니다! 매우 감사합니다!

데이브 <<<
 

for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

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

{

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

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //Modify stop loss and take profit

}

return(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

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

{

if(OrderStopLoss()<Bid-Point*15 ||OrderStopLoss()==0)

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //Modify stop loss and take profit

}

return(0);

}

return(0);

}

}

지금 올바른 형식으로 여러분의 매우 관대한 코더 중 한 명이 위의 이 SL 및 TP 문제를 해결하는 데 도움이 될까요? 내 원래 요청으로 돌아갑니다. 내 수면 프로그램은 다양한 시간에 EA를 비활성화합니다. EA는 휴면 모드 이전에 40 - 50핍 손절매와 100의 이익실현 으로 열린 거래를 생성했습니다. EA가 휴면 상태가 되기 직전에 각 열린 티켓의 손절매를 15핍으로 변경하고 싶습니다. 이익실현이 25핍으로 변경되었습니다. 손절매는 트레일링 스탑이 아니라 현재 거래 가격(마찬가지로 이익실현)보다 낮거나(매수) 높거나(매도) 하드 스탑입니다. 나에게 당신의 전문 지식을 빌려주고 내 하루를 만드십시오!!

 

후행 정지의 경우 다음 함수 를 사용하십시오. 이해하기 쉽게 쓰여진 것 같아요. 때때로 프로그래밍 괴짜는 코드를 작성하는데, 이는 몇 밀리초 단위로 효율적일 수 있지만 읽고 디버그하기가 매우 어려운 작업이 됩니다.

void TrailingAlls(int start,int stop)

{

int profit;

double stoptrade;

double stopcal;

if(stop==0)

return;

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

if(!OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))

continue;

if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)

continue;

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

{

if(OrderType()==OP_BUY)

{

profit=NormalizeDouble((Bid-OrderOpenPrice())/Point,0);

if(profit<start)

continue;

stoptrade=OrderStopLoss();

stopcal=Bid-(stop*Point);

if(stoptrade==0||(stoptrade!=0&&stopcal>stoptrade))

OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Blue);

}//Long

if(OrderType()==OP_SELL)

{

profit=NormalizeDouble((OrderOpenPrice()-Ask)/Point,0);

if(profit<start)

continue;

stoptrade=OrderStopLoss();

stopcal=Ask+(stop*Point);

if(stoptrade==0||(stoptrade!=0&&stopcal<stoptrade))

OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Red);

}//Shrt

}

}//for

}

다음을 사용하여 시작할 때 호출하십시오.

TrailingAlls(TrailStartPips,TrailStopPips);

 

Maji, 내 코드에서 (잘못된). 나는 후행 정지를 원하지 않습니다. 각 공개 매수 및 매도가 현재 통화 가격 에서 15핍의 하드 손절매와 25핍의 하드 테이크 이익을 갖도록 공개 티켓을 수정하고 싶습니다.

통화 기호와 관련된 미결 상태를 확인하기 위해 검색한 다음 각 미결 거래에서 손절매를 수정하고 이익을 내기 위해 필요합니다. 그게 내가 필요한 전부야.

어젯밤에 우리는 접선에 빠졌고 후행 정지에 빠졌습니다 - 나와 피닉스 사이의 오해.

그렇게 어렵지 않은 기능을 수행할 수 있도록 도와주세요 - 당신을 위한 것입니다!

데이브 <<<
 

데이브,

그 변화를 만드는 요소는 내가 당신에게 준 루틴에 있다고 생각합니다.

그렇지 않으면 코드나 이메일을 저에게 게시해야 하며 제가 무엇을 할 수 있는지 알 수 있습니다. 때로는 다른 사람의 코드를 읽는 것이 매우 어렵기 때문에 시간이 많이 걸리는 작업일 수 있습니다. 그런 경우에는 손을 들겠습니다.

행운을 빕니다.

 

Post #309는 PHP에서 그대로 내 코드입니다.

공개 거래를 15의 하드 손절매와 25의 하드 테이크 이익 으로 변경하기만 하면 됩니다. 당신과 같은 전문가가 이 코딩을 수정하는 데 너무 많은 노력을 기울이지 않아야 합니다.

데이브 <<
 

데이브,

내가 말했듯이, 그런 종류의 편집을 하는 것은 매우 시간이 많이 걸립니다. 점심 시간에 놀고 있는데 여기 한 번 시도해 보세요. 작동하지 않으면 혼자입니다. 테스트를 거치지 않았기 때문에...

프로그램이 절전 모드로 전환되기 직전에 메인 프로그램에서 이것을 호출하십시오.

행운을 빕니다.

void ChangeStop(int takeprofit,int stop)

{

double profit;

double stopcal;

if(stop==0)

return;

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

if(!OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))

continue;

if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)

continue;

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

{

if(OrderType()==OP_BUY)

{

profit=Ask+(takeprofit*point);

stopcal=Bid-(stop*Point);

OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,profit,0,Blue);

}//Long

if(OrderType()==OP_SELL)

{

profit=Bid-(takeprofit*point);

stopcal=Ask+(stop*Point);

OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,profit,0,Red);

}//Shrt

}

}//for

}

 

이거 수정은 어디서 하나요?? 원래 손절매는 40이었고 이익실현은 100이었습니다. 절전 모드의 일부로 손절매는 기존 미결제 주문 에서 15로 변경되고 이익실현은 기존 미결제 주문 에서 25로 변경됩니다.

Open Order Tickets: 슬립 모드 전.

슬립 모드 전 손절매 - 40 슬립 모드 전 이익실현 -100 슬립 모드 후 손절매 수정 -15 슬립 모드 후 이익실현 수정 - 25

주문 설정을 초기화하는 것이 아니라 이미 접수된 기존 주문을 수정하고 여전히 활성 상태입니다.

어쨌든 도와주셔서 감사합니다! 왜 그렇게 간단한 것이 그렇게 어렵게 보이는가?

데이브 <<
 

데이브,

어렵지 않습니다. MQ를 조금 더 공부해야 합니다. 내가 제공한 코드를 확인하세요. 매개변수 , stop 및 takeprofit은 사용하려는 숫자여야 합니다.

모든 것이 있습니다. 사용 방법을 알아내야 합니다.

 

수건을 던집니다. 오류가 발생합니다. 나는 피닉스가 제공한 것을 사용할 것입니다. 왜냐하면 그것이 내가 살 수 있는 지점까지 작동하기 때문입니다. 이 언어가 미국에서 배울 수 있는 학교가 있다면 내 삶이 훨씬 더 쉬워질 것입니다. 불행히도, 아무도 없습니다.

Maji와 Phoenix 모두 입력해 주셔서 감사합니다!

데이브 <<<