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

 
mladen:
dasio 이미 현재 날짜의 모든 시간을 반복하고 있습니다. iClose() 및 iOpen()을 1시간이 아닌 다른 시간 프레임에서 호출의 예로 배치했습니다. 현재 날짜와 다른 날짜에 액세스하려면 datetime에서 "0"을 바꾸십시오. startTime = iTime ( NULL , PERIOD_D1 , 0 ); 데이터 수집을 원하는 날짜 부분

고맙습니다.

어쩌면 나는 공부해야 한다.

00:00 촛불 - 01:00 - 02:00 등을 별도로 계산하는 방법을 이해하지 못합니다.

죄송합니다

 

신호 문제

믈라덴

감사합니다. 자세히 봤습니다.... 아직 코드를 실험 중입니다. 완료되면 알려드리겠습니다.

 

다시오

이 부분

int i=iBarShift(NULL,PERIOD_H1,startTime);

i를 지정된 날짜의 첫 번째 시간당 촛불의 이동으로 설정합니다(이것이 datetime startTime = iTime ( NULL , PERIOD_D1 , 0 ); 추가된 이유 - 하루의 시작 시간을 찾기 위해) 그 후 반복됩니다 하루까지의 각 1시간 막대 값은 동일하게 유지됩니다(예를 들어 금요일 에는 브로커에 따라 24회 반복되지 않고 22회 또는 23회 반복됩니다)

약간 다르게 수행되어야 하는 배열을 느껴야 하는 경우 Ilet me now uf 그것이 당신의 아이디어였습니다)

dasio:
고맙습니다.

어쩌면 나는 공부해야 한다.

00:00 촛불 - 01:00 - 02:00 등을 별도로 계산하는 방법을 이해하지 못합니다.

죄송합니다
 

전문가를 중지시키는 방법은 무엇입니까?

안녕하세요 코더 여러분,

전문가가 거래에서 승리한 후 중지하도록 추가 코딩 라인을 코딩하는 방법은 무엇입니까?

핍은 가방에 있고 전문가는 중지 ...

감사합니다

톰캣98

 
mladen:
다시오

이 부분

int i=iBarShift(NULL,PERIOD_H1,startTime);

i를 지정된 날짜의 첫 번째 시간당 촛불의 이동으로 설정합니다(이것이 datetime startTime = iTime ( NULL , PERIOD_D1 , 0 ); 추가된 이유 - 하루의 시작 시간을 찾기 위해) 그 후 반복됩니다 하루까지의 각 1시간 막대 값은 동일하게 유지됩니다(예를 들어 금요일에는 브로커에 따라 24회 반복되지 않고 22회 또는 23회 반복됩니다)

약간 다르게 수행되어야 하는 배열을 느껴야 하는 경우 Ilet me now uf 그것이 당신의 아이디어였습니다)

고맙습니다,

조금 더 이해하고 있습니다.

그러나 예를 들어 필요합니다.

다음과 같이 변수에 연결해야 합니다.

(촛불 00:00 ; 변수 = 종가+고가

촛불 01:00 ; 변수1 = 닫기+열기

촛불 02:00 ; 변수2 = 높음+낮음;

그리고 하루의 모든 시간 촛불에 대해 계속됩니다.

따라서 변수는 얼마나 두 배인지 정의됩니다.

그 후에 변수를 사용하여 수학 계산을 수행하고 결과를 버퍼에 연결해야 합니다(문제가 아님).

나에게 문제는 변수 연관입니다....

 

또 다른 문제는... 프로그래밍 공부를 하려고 하는데 가끔(때로는? 에헤) 도움이 필요합니다.

보류 중인 주문 을 두 개 배치하는 EA가 있는 경우 하나의 보류 중인 주문이 열릴 때 다른 보류 중인 주문을 삭제해야 하는 경우 어떻게 코딩할 수 있습니까?

고맙습니다

 

2개의 루프를 사용해야 합니다.

먼저 보류 중인 주문 중 일부가 "일반" 주문이 되었는지 확인하기 위해 주문을 계산해야 합니다(따라서 OP_BUY 또는 OP_SELL 유형의 주문을 정기적으로 계산하고 원하는 경우 나머지 주문도 계산해야 합니다. 주문도).

열린 주문이 있으면 다시 한 번 반복하여 OP_BUY 또는 OP_SELL 유형 주문이 아닌 모든 주문을 삭제해야 합니다.

코드는 다음과 같을 수 있습니다.

int opened =0;

int pending =0;

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

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol() !=Symbol()) continue;

if(OrderMagicNumber()!=MagicNumber) continue;

if(OrderType()==OP_BUY || OrderType()==OP_SELL)

opened++;

else pending++;

}

if (opened>0 && pending>0)

{

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

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol() !=Symbol()) continue;

if(OrderMagicNumber()!=MagicNumber) continue;

if(OrderType()!=OP_BUY && OrderType()!=OP_SELL)

OrderDelete(OrderTicket());

}

}
dasio:
또 다른 문제는... 프로그래밍 공부를 하려고 하는데 가끔(때로는? 에헤) 도움이 필요합니다.

보류 중인 주문을 두 개 배치하는 EA가 있는 경우 하나의 보류 중인 주문이 열릴 때 다른 보류 중인 주문을 삭제해야 하는 경우 어떻게 코딩할 수 있습니까?

고맙습니다
 

모든 매도 또는 모든 매수 포지션만 청산(목표 이익 달성 시)

안녕하세요 모두 .. FX와 EA를 처음 사용합니다. 목표에 도달했을 때 "전체 판매 종료" 또는 "전체 구매 종료"에 대한 EA를 찾으려고 했지만 찾을 수 없었습니다. "HIT TARGET or PROFIT" 없이 모두 매도 또는 모두 매수 만 마감 했습니다. 누군가 아래 기능으로 1개의 EA를 만드는 데 도움을 줄 수 있습니까?

1) 이익이 X 목표에 도달하면 모든 판매를 종료합니다.

2) 이익이 X 목표에 도달하면 모든 매수를 종료합니다.

3) 후행 정지 포함(가능한 경우 문제가 없는 경우)

4) 자기자본 또는 마진이 X % 미만이면 청산하지 않음 모든 매수 또는 모두 매도 청산 (가능하면 문제가 없으면)

메모:

4가 없으면 코딩하기가 매우 어렵기 때문에 하나의 EA에 1,2, 3이 없습니다.

4와 3이 어렵다면 하나의 EA에 1과 2가 없으면

여전히 어렵다면 1번과 2번을 따로 만드십시오.

누군가 위의 내용을 제공할 수 있다면 정말 감사할 것입니다.

미리 감사드립니다

 
pipsmonitor:
안녕 모두 .. FX와 EA를 처음 사용합니다. 목표에 도달했을 때 "전체 판매 종료" 또는 "전체 구매 종료"에 대한 EA를 찾으려고 했지만 찾을 수 없었습니다. "HIT TARGET or PROFIT" 없이 모두 매도 또는 모두 매수만 마감했습니다. 누군가 아래 기능으로 1개의 EA를 만드는 데 도움을 줄 수 있습니까?

1) 이익이 X 목표에 도달하면 모든 판매를 종료합니다.

2) 이익이 X 목표에 도달하면 모든 매수를 닫습니다.

3) 후행 정지 포함(가능한 경우 문제가 없는 경우)

4) 자기자본 또는 마진이 X % 미만이면 청산하지 않음 모든 매수 또는 모두 매도 청산 (가능하면 문제가 없으면)

메모:

4가 없으면 코딩하기가 매우 어렵기 때문에 하나의 EA에 1,2, 3이 없습니다.

4와 3이 어렵다면 하나의 EA에 1과 2가 없으면

여전히 어렵다면 1번과 2번을 따로 만드십시오.

누군가 위의 내용을 제공할 수 있다면 정말 감사할 것입니다.

미리 감사드립니다

안녕하세요 핍스모니터입니다.

https://www.mql5.com/en/forum/181179 이 페이지에서 무언가를 찾았을 수도 있습니다. 또한 포럼 헤더 표시줄에서 고글 검색을 수행했습니다. 후행 Eas를 검색하고 Ema 후행을 알고 BBand는 Ea 후행을 중지합니다.

 

안녕,

이 두 코드를 병합하려고 하는데 문제가 있습니다.

보류 중인 주문 중 하나가 채워지면 다른 주문을 취소해야 합니다.

당신의 무책임에 감사합니다

int opened =0;

int pending =0;

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

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol() !=Symbol()) continue;

if(OrderMagicNumber()!=Magic) continue;

if(OrderType()==OP_BUY || OrderType()==OP_SELL)

opened++;

else pending++;

}

if (opened>0 && pending>0)

{

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

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol() !=Symbol()) continue;

if(OrderMagicNumber()!=Magic) continue;

if(OrderType()!=OP_BUY && OrderType()!=OP_SELL)

OrderDelete(OrderTicket());

}

} [/PHP]

[PHP] extern int Magic = 68415;

extern int Orario_Inizio = 0;

extern int Orario_Fine = 6;

extern int Buffer = 0;

extern double Lotti = 0.1;

extern int TakeProfit = 10;

extern int StopLoss = 50;

double Massimo;

double Minimo;

int BarCount;

int BarStart;

int BarShift;

double MinLot;

double LotSize;

int i;

int ticket;

string Status;

string BuyStatus1;

string SellStatus1;

double Range;

string CommentoRange;

double pipMultiplier = 1;

int init()

{

}

int start()

{

if (Digits==3 || Digits==5)

{pipMultiplier = 10;}

else {pipMultiplier = 1; }

double TakeProfit1 = TakeProfit*Point*pipMultiplier;

double StopLoss1 = StopLoss*Point*pipMultiplier;

double Buffer1 = Buffer*Point*pipMultiplier;

double StopLossPrice = NormalizeDouble(StopLoss1,Digits);

double TakeProfitPrice = NormalizeDouble(TakeProfit1,Digits);

double BufferPrice = NormalizeDouble(Buffer1,Digits);

//CALCOLA LE BARRE DEL RANGE

if(Orario_Inizio>Orario_Fine)

{

BarCount=24+Orario_Fine-Orario_Inizio;

}

if(Orario_Inizio<Orario_Fine)

{

BarCount=Orario_Fine-Orario_Inizio;

}

//CALCOLA IL MASSIMO E IL MINIMO DEL RANGE

if(Hour()>=Orario_Fine)

{

BarStart=Hour()-Orario_Fine;

BarShift=BarStart+BarCount;

Minimo=iLow(NULL,PERIOD_H1,BarStart);

Massimo=0;

for(i=BarStart;i<=BarShift;i++)

{

Massimo=MathMax(Massimo,iHigh(NULL,PERIOD_H1,i));

Minimo=MathMin(Minimo,iLow(NULL,PERIOD_H1,i));

Range=(Massimo-Minimo)/Point;

}

}

else

{

Massimo=0;

Minimo=0;

return(0);

}

//CONTROLLA SE E' L'ORARIO PER POTER TRADARE

if(Hour()==Orario_Fine && OrdersTotal()<2)

{

//CONTROLLA SE IL MASSIMO E' STATO ROTTO. CONDIZIONE BUY

double OpenPriceBuy = NormalizeDouble((Massimo+BufferPrice),Digits);

ticket=OrderSend(Symbol(),OP_BUYSTOP,Lotti,OpenPriceBuy,0,OpenPriceBuy-StopLossPrice,OpenPriceBuy+TakeProfitPrice,NULL,Magic,0,Blue);

//CONTROLLA SE IL MINIMO E' STATO ROTTO. CONDIZIONE SELL

double OpenPriceSell = NormalizeDouble((Minimo-BufferPrice),Digits);

ticket=OrderSend(Symbol(),OP_SELLSTOP,Lotti,OpenPriceSell,0,OpenPriceSell+StopLossPrice,OpenPriceSell-TakeProfitPrice,NULL,Magic,0,Red);

if (ticket != -1)

return(0);

}

}