코딩하는 방법? - 페이지 248

 
 

도움말 - 기존 거래를 열어 두도록 EA를 수정하는 방법

누군가 도울 수 있다면 아주 간단한 해결책이 필요합니다

현재 수익성이 있는 EA가 있지만 거래를 시작하고 동시에 거래를 마감하므로 한 번에 1개의 거래만 활성화됩니다.

이제 기존 거래가 몇 개 열려 있는 기존 계정에서 실행하고 싶습니다. 해당 거래를 계속 실행하면서 EA가 기존 거래 중 하나라도 발생할 때 부수적인 문제로 자체 거래를 계속 열고 닫게 하고 싶습니다. 수익이 나면 닫습니다.

이익으로 기존 거래를 닫는 이 사이드 요청은 간단하게 유지된다면 무시할 수 있습니다. 필요한 경우 수동으로 닫을 수 있습니다.

여기 내 EA가 현재 사용하는 것이 있습니다.

if(val1 > val2) {trade_text = " BUY trade open";trend_text = "UP";BV=1;break;}

if(val1 < val2) {trade_text = " 매도 거래 오픈";trend_text = "DOWN";SV=1;break;}}

// 전문가 자금 관리

if(MM){if(Risk100){Comment("잘못된 위험 값입니다.");return(0);}

else{MML=MathFloor((AccountFreeMargin()*AccountLeverage()*Risk*Point*100)/(Ask*MarketInfo(Symbol(),MODE_LOTSIZE)*MarketInfo(Symbol(),MODE_MINLOT)))*MarketInfo(Symbol() ,MODE_MINLOT);}}

if(MM==거짓){MML=많음;}

// 전문가 초기화 위치

int cnt=0,OP=0,OS=0,OB=0,CS=0,CB=0;OP=0;for(cnt=0;cnt<OrdersTotal();cnt++){OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES);

if((OrderType()==OP_SELL||OrderType()==OP_BUY)&&OrderSymbol()==Symbol()&&((OrderMagicNumber()==Magic)||Magic==0))OP=OP+1; }

if(OP>=1){OS=0; OB=0;}OB=0; OS=0;CB=0;CS=0;

// 포지션을 열기 위한 전문가 조건

if(SV>0){OS=1;OB=0;}if(BV>0){OB=1;OS=0;}

// 포지션을 닫기 위한 전문가 조건

if((SV>0)||(RealSL_Enabled&&(OrderOpenPrice()-Bid)/Point>=RealSL)||(RealTP_Enabled&&(Ask-OrderOpenPrice())/Point>=RealTP)){CB=1;}

if((BV>0)||(RealSL_Enabled&&(Ask-OrderOpenPrice())/Point>=RealSL)||(RealTP_Enabled&&(OrderOpenPrice()-Bid)/Point>=RealTP)){CS=1;}

for(cnt=0;cnt<OrdersTotal();cnt++){OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

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

{if(CB==1){OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Aqua);temp = Bid;return(0);}}

if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()&&((OrderMagicNumber()==매직)||매직==0)){

if(CS==1){OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Gold);temp = Bid;return(0);}}}double SLI=0,TPI=0;int TK=0 ;

// 전문가 오픈 포지션 값

if((AddP()&&Add_Positions&&OP<=MaxOrders)||(OP==0&&!Add_Positions)){

if(OS==1){if(TP==0)TPI=0;else TPI=Bid-TP*Point;if(SL==0)SLI=0;else SLI=Bid+SL*Point;OS= 0;반환(0);}

if(OB==1){if(TP==0)TPI=0;else TPI=Ask+TP*Point;if(SL==0)SLI=0;else SLI=Ask-SL*Point;{TK =OrderSend(Symbol(),OP_BUY,MML,Ask,Slip,SLI,TPI,OrSt,Magic,0,Blue);OB=0;return(0);}}

for(j=0;j<OrdersTotal();j++){if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES)){if(OrderSymbol()==Symbol()&&((OrderMagicNumber()==매직)||매직 ==0)){TrP();}}}반환(0);}

// 전문가 주문 수

int CntO(int Type,int Magic){int _CntO;_CntO=0;

for(int j=0;j<OrdersTotal();j++){OrderSelect(j,SELECT_BY_POS,MODE_TRADES);if(OrderSymbol()==Symbol()){if((OrderType()==Type&&(OrderMagicNumber() ==매직)||매직==0))_CntO++;}}return(_CntO);}

//전문가 손익분기점

무효 TrP(){더블 pb,pa,pp;pp=MarketInfo(OrderSymbol(),MODE_POINT);if(OrderType()==OP_BUY){pb=MarketInfo(OrderSymbol(),MODE_BID);

if(BE>0){if((pb-OrderOpenPrice())>BE*pp){if((OrderStopLoss()-OrderOpenPrice())<0){ModSL(OrderOpenPrice()+0*pp);}} }

// 전문가 후행 정지

if(TS>0){if((pb-OrderOpenPrice())>TS*pp){if(OrderStopLoss()<pb-(TS+TS_Step-1)*pp){ModSL(pb-TS*pp); 반품;}}}}

if(OrderType()==OP_SELL){pa=MarketInfo(OrderSymbol(),MODE_ASK);if(BE>0){if((OrderOpenPrice()-pa)>BE*pp){if((OrderOpenPrice()- OrderStopLoss())<0){ModSL(OrderOpenPrice()-0*pp);}}}

if(TS>0){if(OrderOpenPrice()-pa>TS*pp){if(OrderStopLoss()>pa+(TS+TS_Step-1)*pp||OrderStopLoss()==0){ModSL(pa+ TS*pp);반환;}}}}}

//전문가 손절매

무효 ModSL(이중 ldSL){bool fm;fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldSL,OrderTakeProfit(),0,CLR_NONE);}

//전문가 추가 위치 기능

부울 AddP(){int _num=0; 정수 _ot=0;

for (int j=0;j<OrdersTotal();j++){if(OrderSelect(j,SELECT_BY_POS)==true && OrderSymbol()==Symbol()&&OrderType()<3&&((OrderMagicNumber()==Magic) ||마법==0)){

_num++;if(OrderOpenTime()>_ot) _ot=OrderOpenTime();}}if(_num==0) return(true);if(_num>0 && ((시간[0]-_ot))>0) 반환 (참); 그렇지 않으면 반환(거짓);}

 

/*

// 포지션을 닫기 위한 전문가 조건

if((SV>0)||(RealSL_Enabled&&(OrderOpenPrice()-Bid)/Point>=RealSL)||(RealTP_Enabled&&(Ask-OrderOpenPrice())/Point>=RealTP)){CB=1;}

if((BV>0)||(RealSL_Enabled&&(Ask-OrderOpenPrice())/Point>=RealSL)||(RealTP_Enabled&&(OrderOpenPrice()-Bid)/Point>=RealTP)){CS=1;}

for(cnt=0;cnt<OrdersTotal();cnt++){OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

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

{if(CB==1){OrderClose(OrderTicket(),OrderLots(),Bi d,Slip,Aqua);temp = Bid;return(0);}}

if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()&& ((OrderMagicNumber()==Magic)||Magic==0)){

if(CS==1){OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Gold);temp = Bid;return(0);}}}double SLI=0,TPI=0;int TK=0 ;

*/

/*전문가 조건이 시작될 때만 추가하여 포지션을 닫습니다.

그리고 */ 끝에

msn abukalil ( at) hotmail.fr

 

빠른 답변을 주신 boukalil에 감사드립니다. 하지만 잘 이해가 되지 않습니다. 수정하면 닫기 명령이 없고 기존 거래는 그대로 유지되지만 내 EA는 자체 거래를 닫지 않고 반대 방향?

이것에 대해 조금 도와줄 수 있습니까?

 

모두들 안녕.....

일반 표시기가 해도에 첨부될 때 이중 색상 히스토그램으로 표시되도록 일반 표시기의 iCustom에서 선 기반 단일 버퍼 표시기를 호출할 수 있는 일반 표시기를 알고 있거나 소유하고 있는 사람이 있는지 여부가 궁금합니다. iCustomed 인디의 기울기에 따라 색이 변하는 바 인디케이터는?

모든 도움을 주시면 감사하겠습니다.

 

신사 숙녀 여러분,

표시기를 csv 파일로 바꾸려면 어떻게 해야 합니까?감사합니다.

 
biddick:
신사 숙녀 여러분, 표시기를 csv 파일로 바꾸려면 어떻게 해야 합니까?감사합니다.

CSV 파일에 저장하는 방법을 의미합니까?

이것을 확인하십시오:

도구 - .csv 리더

 
 

이 작은 스크립트를 수정하는 데 도움을 주세요.

안녕,

누군가 이 작은 주문 입력 스크립트를 수정하는 데 도움을 줄 수 있습니까?

거래된 로트 크기는 계정 크기의 위험이 있는 %의 함수 입니다.

이 코드 줄을 어딘가에 삽입해야 한다는 것을 알고 있지만 프로그래밍하는 방법에 대한 단서가 없습니다.

이중 위험 = RiskPercent / 100;

if (UseMoneyMgmt)

랏=NormalizeDouble(AccountBalance()*Risk/stoploss/(MarketInfo(Symbol(),MODE_TICKVALUE)),2);

미리 감사드립니다

파일:
 

보류 중인 주문

안녕!

보류 중인 주문을 어떻게 관리합니까? (mt4 API 사용)

내 프로그램이 TT_ORDER_PENDING_OPEN(거래 유형)을 수신했을 때

펌핑 알림에서 PUMP_UPDATE_ACTIVATION을 받았습니다.

사유: