나는 ordermodify 함수 오류에 대한 이 유효하지 않은 티켓에 종지부를 찍을 것이라고 생각하는 두 if 문에 OrderCloseTime()을 추가했지만 때때로 내 EA는 모든 주문에 대한 제어를 잃고 어떻게든 닫힌 거래에서 혼합되고 지속적으로 수정하려고 합니다. 계속해서 거대한 로그 파일을 만들고 MT4를 다시 시작하지 않는 한 거래를 계속하지 않을 것입니다. 마감된 주문을 어떻게 선택하는지 정확히 모르겠습니다. 모든 주문을 수정하는 과정에서 그 중 하나가 짧은 시간에 마감되어 폐기되는 것 같습니다. 내가 말했듯이 이것은 하루에 30-50 거래 중 두 번 발생할 것입니다.
이제 코드가 작동합니다. 감사합니다. 경고가 더 이상 반복되지 않습니다. 수백 명과 같은 여러 수신자에게 거래 경고를 보낼 스크립트를 호스팅하고 싶습니다. 어떻게 할 수 있습니까...회사가 있습니까? 귀하 또는 이 포럼의 모든 사람이 알고 있는 것을 처리할 수 있습니다.
Mastercash: Mladen 감사합니다. 자세히 봤습니다.... 아직 코드를 실험 중입니다.완료되면 알려드리겠습니다.
1. 당신이 그것을 보낼 생각이라면 메일을 보내는 것이 유일한 합리적인 방법이라고 생각합니다. 그렇다면 단순히 야생에 있는 이메일 스팸 프로그램 중 하나를 사용하지 않겠습니까?
2. 신호를 보내는 데 문제가 너무 많습니다(제 생각에는 보내는 문제 중 일부는 실제로 해결할 수 없음). 따라서 논리를 뒤집지 않는 이유는 무엇입니까? 보내는 대신 지정된 위치에서 읽을 코드(사용자 이름, 전달 등 ...)를 만들면 보내는 데 발생할 수 있는 거의 모든 문제가 발생합니다. 미해결, 해결 (여러 IP 동시 사용 방지 포함)
그래서, 단지 몇 가지 생각 ...
Mastercash: mladen 감사합니다. 코드가 작동 중입니다.경고가 더 이상 반복되지 않습니다.수백 명과 같은 여러 수신자에게 거래 경보를 보낼 스크립트를 호스팅하고 싶습니다. 어떻게 할 수 있습니까...있습니까? 귀하 또는 이 포럼의 모든 사람이 알고 있는 것을 처리할 수 있는 회사.
beakon: 나는 ordermodify 함수 오류에 대한 이 유효하지 않은 티켓에 종지부를 찍을 것이라고 생각하는 두 if 문에 OrderCloseTime()을 추가했지만 때때로 내 EA는 모든 주문에 대한 제어를 잃고 어떻게든 닫힌 거래에서 혼합되고 지속적으로 수정하려고 합니다. 계속해서 거대한 로그 파일을 만들고 MT4를 다시 시작하지 않는 한 거래를 계속하지 않을 것입니다. 마감된 주문을 어떻게 선택하는지 정확히 모르겠습니다. 모든 주문을 수정하는 과정에서 그 중 하나가 짧은 시간에 마감되어 폐기되는 것 같습니다. 내가 말했듯이 이것은 하루에 30-50 거래 중 두 번 발생할 것입니다.
이에 대해 더 많은 설명이 필요한 것 같습니다. 모든 클라이언트에게 동시에 경고를 보내는 데 도움이 되는 코드를 작성하고 설정하는 방법에 대해 힌트를 주실 수 있습니까? 데이터베이스에 이메일 주소를 저장하는 것입니다. ....하지만 서버 언어(예: php 스크립트)가 mt4 플랫폼에서 자동으로 경고를 수집하는 방법은 무엇입니까?......이것이 문제라고 생각합니다. 방법이 있으면 다음으로 보낼 수 있습니다. 여러 대의 휴대전화나 이메일 주소입니다. 조언 부탁드립니다.
mladen: 2개의 생각:
1. 당신이 그것을 보낼 생각이라면 메일을 보내는 것이 유일한 합리적인 방법이라고 생각합니다. 그렇다면 단순히 야생에 있는 이메일 스팸 프로그램 중 하나를 사용하지 않겠습니까?
2. 신호를 보내는 데 문제가 너무 많습니다(제 생각에는 보내는 문제 중 일부는 실제로 해결할 수 없음). 따라서 논리를 뒤집지 않는 이유는 무엇입니까? 보내는 대신 지정된 위치에서 읽을 코드(사용자 이름, 전달 등 ...)를 만들면 보내는 데 발생할 수 있는 거의 모든 문제가 발생합니다. 미해결, 해결 (여러 IP 동시 사용 방지 포함)
"경보 수집" 현재: 신호를 배포하거나 해당 신호에 대한 액세스를 허용하는 선택한 소프트웨어에서 인식할 읽을 수 있는 형식으로 " 내보내는 " 무언가가 있어야 합니다.
추신: 신호 서비스는 얼핏 보기보다 훨씬 더 복잡하며 하나 만들 계획이라면 제대로 작동하도록 하는 데 상당한 비용이 소요될 수 있습니다.
Mastercash: 이에 대해 더 많은 설명이 필요한 것 같습니다. 모든 클라이언트에게 동시에 경고를 보내는 데 도움이 되는 코드를 작성하고 설정하는 방법에 대해 힌트를 주실 수 있습니까? 데이터베이스에 이메일 주소를 저장하는 것입니다. ....하지만 서버 언어(예: php 스크립트)가 mt4 플랫폼에서 자동으로 경고를 수집하는 방법은 무엇입니까?......이것이 문제라고 생각합니다. 방법이 있으면 다음으로 보낼 수 있습니다. 여러 대의 휴대전화나 이메일 주소입니다. 조언 부탁드립니다.
안녕하세요 코더 여러분,
전문가가 거래에서 승리한 후 중지하도록 추가 코딩 라인을 코딩하는 방법은 무엇입니까?
핍은 가방에 있고 전문가는 중지 ...
감사합니다
톰캣98코딩 경험이 있는 경우 아래를 참조하세요. 그렇지 않으면 코더를 구하십시오.
1) 각 거래가 종료된 후 OrdersHistoryTotal()에서 루프를 수행하여 거래를 확인합니다.
2) 마지막 거래 마감( OrderCloseTime() )을 확인합니다.
3) 마지막 거래인 경우 OrderProfit() == 이익을 확인합니다.
이익 == true인 경우 EndDayTrade == true && LastTradeDay == DayofYear()를 설정합니다.
이익 == false인 경우 EndDayTrade == false로 설정합니다.
4) 프로그램이 start()를 통과할 때 새로운 거래를 시작하기 전에 EndDayTrade == false인 경우 ==>를 삽입해야 합니다. 그것이 사실이기 때문에 새로운 거래를 촉발하지 않을 것입니다.
5) 새로운 날을 확인하려면 타이머 기능 이 필요합니다. (새 날이 새로운 거래를 시작하려는 것이라고 가정)
가장 간단한 형식은 if (LastDay != DayofYear() )입니다.
6) 위의 타이머 함수 내에서 LastDay = DayofYear()를 설정합니다.
if ( LastTradeDay != DayofYear() && EndDayTrade == true)
EndDayTrade == false로 설정하면 다시 시작됩니다.
사용자 정의 변수
부울 EndDayTrade = 거짓;
정수 LastTradeDay = 9999999;
정수 마지막 날 = 999999;
이 설명이 충분히 명확하기를 바랍니다.
안녕,
이 두 코드를 병합하려고 하는데 문제가 있습니다.
보류 중인 주문 중 하나가 채워지면 다른 주문을 취소해야 합니다.
당신의 무책임에 감사합니다
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);
}
}누군가 도울 수 있습니까?
다시오
전체 코드를 start() 프로시저의 시작 부분에 배치해 보십시오. 보류 중인 주문 을 열 때 더 많은 방법을 필터링해야 할 것입니다. 그러나 시작할 때 해당 코드를 배치하면 이전에 열린 보류 중인 주문 중 하나라도 "일반" 주문인 경우 보류 중인 주문이 정리됩니다.
누군가 도울 수 있습니까?
안녕,
저는 이 스레드에서 많은 것을 배우고 있습니다. 그것이 제가 계속 질문을 하는 이유입니다.
지금. 혼자 하려고 하지만 성공하지 못합니다.
오프라인 renko 차트에서 이 지표를 사용하고 싶습니다.
내 목적은 촛불 위 또는 아래에 플롯하는 것입니다. 건설은 얼마나 오래 되었습니까?
그래서 나는 양초의 사양에 그것이 열린 시간이 있다는 것을 알고 있습니다. 따라서 현재 양초에서 이전 양초를 뺀 시간을 하면 필요한 것을 갖게 됩니다.
그럼 어떻게 코딩할 수 있을까요?
매우 감사합니다
이 코드가 마감된 주문을 수정하려는 이유를 알 수 없음
나는 ordermodify 함수 오류에 대한 이 유효하지 않은 티켓에 종지부를 찍을 것이라고 생각하는 두 if 문에 OrderCloseTime()을 추가했지만 때때로 내 EA는 모든 주문에 대한 제어를 잃고 어떻게든 닫힌 거래에서 혼합되고 지속적으로 수정하려고 합니다. 계속해서 거대한 로그 파일을 만들고 MT4를 다시 시작하지 않는 한 거래를 계속하지 않을 것입니다. 마감된 주문을 어떻게 선택하는지 정확히 모르겠습니다. 모든 주문을 수정하는 과정에서 그 중 하나가 짧은 시간에 마감되어 폐기되는 것 같습니다. 내가 말했듯이 이것은 하루에 30-50 거래 중 두 번 발생할 것입니다.
누구든지 이것을 끝내는 방법에 대한 아이디어가 있습니까?
if (flag_s3 == TRUE) {
for (cnt_s3 = OrdersTotal() - 1; cnt_s3 >= 0; cnt_s3--) {
OrderSelect(cnt_s3, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber_3 || OrderCloseTime()!=0) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_3 && OrderCloseTime()==0)// OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow);
//===
while(!OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow))
{Sleep(1000);RefreshRates();}
//===
NewOrdersPlaced_s3 = FALSE;
}
}신호 문제
믈라덴
이제 코드가 작동합니다. 감사합니다. 경고가 더 이상 반복되지 않습니다. 수백 명과 같은 여러 수신자에게 거래 경고를 보낼 스크립트를 호스팅하고 싶습니다. 어떻게 할 수 있습니까...회사가 있습니까? 귀하 또는 이 포럼의 모든 사람이 알고 있는 것을 처리할 수 있습니다.
Mladen 감사합니다. 자세히 봤습니다.... 아직 코드를 실험 중입니다.완료되면 알려드리겠습니다.
...
2개의 생각:
1. 당신이 그것을 보낼 생각이라면 메일을 보내는 것이 유일한 합리적인 방법이라고 생각합니다. 그렇다면 단순히 야생에 있는 이메일 스팸 프로그램 중 하나를 사용하지 않겠습니까?
2. 신호를 보내는 데 문제가 너무 많습니다(제 생각에는 보내는 문제 중 일부는 실제로 해결할 수 없음). 따라서 논리를 뒤집지 않는 이유는 무엇입니까? 보내는 대신 지정된 위치에서 읽을 코드(사용자 이름, 전달 등 ...)를 만들면 보내는 데 발생할 수 있는 거의 모든 문제가 발생합니다. 미해결, 해결 (여러 IP 동시 사용 방지 포함)
그래서, 단지 몇 가지 생각 ...
mladen 감사합니다. 코드가 작동 중입니다.경고가 더 이상 반복되지 않습니다.수백 명과 같은 여러 수신자에게 거래 경보를 보낼 스크립트를 호스팅하고 싶습니다. 어떻게 할 수 있습니까...있습니까? 귀하 또는 이 포럼의 모든 사람이 알고 있는 것을 처리할 수 있는 회사.
다음과 같이 시도하십시오.
#define PAUSE_BEFORE_RETRY 1000
#define NumberOfReTries 3
if (NewOrdersPlaced_s3 && flag_s3 == TRUE)
{
for (cnt_s3 = OrdersTotal() - 1; cnt_s3 >= 0; cnt_s3--)
{
if (!OrderSelect(cnt_s3, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != MagicNumber_3) continue;
for (int retry=0; retry<NumberOfReTries; retry++)
{
OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow);
int error = GetLastError();
switch (error)
{
case ERR_SERVER_BUSY:
case ERR_NO_CONNECTION:
case ERR_INVALID_PRICE:
case ERR_OFF_QUOTES:
case ERR_BROKER_BUSY:
case ERR_TRADE_CONTEXT_BUSY:
Sleep(PAUSE_BEFORE_RETRY);
continue;
case ERR_PRICE_CHANGED:
case ERR_REQUOTE:
continue;
default:
retry=NumberOfReTries;
}
}
NewOrdersPlaced_s3 = FALSE;
}
}나는 ordermodify 함수 오류에 대한 이 유효하지 않은 티켓에 종지부를 찍을 것이라고 생각하는 두 if 문에 OrderCloseTime()을 추가했지만 때때로 내 EA는 모든 주문에 대한 제어를 잃고 어떻게든 닫힌 거래에서 혼합되고 지속적으로 수정하려고 합니다. 계속해서 거대한 로그 파일을 만들고 MT4를 다시 시작하지 않는 한 거래를 계속하지 않을 것입니다. 마감된 주문을 어떻게 선택하는지 정확히 모르겠습니다. 모든 주문을 수정하는 과정에서 그 중 하나가 짧은 시간에 마감되어 폐기되는 것 같습니다. 내가 말했듯이 이것은 하루에 30-50 거래 중 두 번 발생할 것입니다.
누구든지 이것을 끝내는 방법에 대한 아이디어가 있습니까?
if (flag_s3 == TRUE) {
for (cnt_s3 = OrdersTotal() - 1; cnt_s3 >= 0; cnt_s3--) {
OrderSelect(cnt_s3, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber_3 || OrderCloseTime()!=0) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_3 && OrderCloseTime()==0)// OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow);
//===
while(!OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow))
{Sleep(1000);RefreshRates();}
//===
NewOrdersPlaced_s3 = FALSE;
}
}경보 솔루션
이에 대해 더 많은 설명이 필요한 것 같습니다. 모든 클라이언트에게 동시에 경고를 보내는 데 도움이 되는 코드를 작성하고 설정하는 방법에 대해 힌트를 주실 수 있습니까? 데이터베이스에 이메일 주소를 저장하는 것입니다. ....하지만 서버 언어(예: php 스크립트)가 mt4 플랫폼에서 자동으로 경고를 수집하는 방법은 무엇입니까?......이것이 문제라고 생각합니다. 방법이 있으면 다음으로 보낼 수 있습니다. 여러 대의 휴대전화나 이메일 주소입니다. 조언 부탁드립니다.
2개의 생각:
1. 당신이 그것을 보낼 생각이라면 메일을 보내는 것이 유일한 합리적인 방법이라고 생각합니다. 그렇다면 단순히 야생에 있는 이메일 스팸 프로그램 중 하나를 사용하지 않겠습니까?
2. 신호를 보내는 데 문제가 너무 많습니다(제 생각에는 보내는 문제 중 일부는 실제로 해결할 수 없음). 따라서 논리를 뒤집지 않는 이유는 무엇입니까? 보내는 대신 지정된 위치에서 읽을 코드(사용자 이름, 전달 등 ...)를 만들면 보내는 데 발생할 수 있는 거의 모든 문제가 발생합니다. 미해결, 해결 (여러 IP 동시 사용 방지 포함)
그래서, 단지 몇 가지 생각 ...마스터캐시
"대량 이메일 보내기"로 인터넷 검색을 해보면 답을 찾을 수 있을 거라 생각합니다.
"경보 수집" 현재: 신호를 배포하거나 해당 신호에 대한 액세스를 허용하는 선택한 소프트웨어에서 인식할 읽을 수 있는 형식으로 " 내보내는 " 무언가가 있어야 합니다.
추신: 신호 서비스는 얼핏 보기보다 훨씬 더 복잡하며 하나 만들 계획이라면 제대로 작동하도록 하는 데 상당한 비용이 소요될 수 있습니다.
이에 대해 더 많은 설명이 필요한 것 같습니다. 모든 클라이언트에게 동시에 경고를 보내는 데 도움이 되는 코드를 작성하고 설정하는 방법에 대해 힌트를 주실 수 있습니까? 데이터베이스에 이메일 주소를 저장하는 것입니다. ....하지만 서버 언어(예: php 스크립트)가 mt4 플랫폼에서 자동으로 경고를 수집하는 방법은 무엇입니까?......이것이 문제라고 생각합니다. 방법이 있으면 다음으로 보낼 수 있습니다. 여러 대의 휴대전화나 이메일 주소입니다. 조언 부탁드립니다.