nonlagzigzag에 대한 경고가 작동하지만 지그재그 선과 일치하지 않습니다. 경고를 여러 번 받았지만 지그재그 선이 그려지지 않았습니다. 또한 표시기를 처음 로드하면 경고가 표시됩니다. 코드를 보고 문제를 찾을 수 있는지 확인할 수 있습니까? 이메일 알림도 잘 작동합니다. 포함해 주셔서 감사합니다. 당신이 할 수 있는 모든 것은 매우 감사할 것입니다.
안녕하세요, tk748님, 인디를 로드할 때 팝업된 초기 경고는 마지막 최고 고점 또는 최저 최저점(여러 캔들 뒤에서 발생했을 수 있음) 이후의 현재 거래 방향을 알려줍니다. 다음 라인이 그려지기 전에 중간 경고가 발생한다는 소식을 듣게 되어 유감입니다. 경고에 대한 IF 문에는 CurrentDirection != PreviousDirection인지 확인하는 추가 필터가 있어 다음 줄이 그려질 때까지 추가 경고가 나타나지 않습니다. (나는 내 EA를 끝내는 일에 관여하고 있으며 지금은 당신을 대신할 수 없습니다.) 낮에는 일을 해야 합니다. 밤에는 잠을 자야 합니다. EA가 없으면 많은 거래를 할 수 없습니다. 내 우선 순위는 일부 수익성없는 거래가 열리지 않도록 필터로 지그재그 또는 변동성 인디를 사용하는 것입니다.
나는 이 스크립트를 가지고 있지만 런던과 거래하도록 타이머를 설정하는 옵션을 갖고 싶습니다... 이것을 추가하는 것이 얼마나 어려울까요? ?
언제나처럼... 도와주셔서 감사합니다!!
#include
#include
#define LOOK_TO_BUY 1
#define LOOK_TO_SELL 2
extern int Magic_Number = 412625; // set this to a unique number if you intend to use the script simulataneously across many charts on the same account.
extern int UserDefinedSpread = 0; // set this to 0 if you want to use market spread. valid value is >= 0
extern double LotSize = 0.1;
extern int Slippage = 3;
extern int StopLoss = 25; // If you set StopLoss to 0, no stop loss level will be placed.
extern int TakeProfit = 0; // If you set TakeProfit to 0, no stop loss level will be placed.
extern bool OneCancelsOther = true; // This determines if you want the script to stay running and track, then delete the opposite pending order when an order has executed.
extern int NumOfCandles = 3; // This determines how many previous candles you want the EA to look for the High Lows. (buy and sell prices). valid value is > 0
extern int PositionalMarginPips = 40; // The distance excluding spread from the high lows for the opening prices. valid value is >= 0
extern int intervalseconds = 1.0; //The time interval for the script to check your trades. allows fractional seconds.
비지그재그 신호 문제
안녕하세요 kevin07님,
nonlagzigzag에 대한 경고가 작동하지만 지그재그 선과 일치하지 않습니다. 경고를 여러 번 받았지만 지그재그 선이 그려지지 않았습니다. 또한 표시기를 처음 로드하면 경고가 표시됩니다. 코드를 보고 문제를 찾을 수 있는지 확인할 수 있습니까? 이메일 알림도 잘 작동합니다. 포함해 주셔서 감사합니다. 당신이 할 수 있는 모든 것은 매우 감사할 것입니다.
안부 인사, 톰
논랙지그재그
안녕하세요, tk748님, 인디를 로드할 때 팝업된 초기 경고는 마지막 최고 고점 또는 최저 최저점(여러 캔들 뒤에서 발생했을 수 있음) 이후의 현재 거래 방향을 알려줍니다. 다음 라인이 그려지기 전에 중간 경고가 발생한다는 소식을 듣게 되어 유감입니다. 경고에 대한 IF 문에는 CurrentDirection != PreviousDirection인지 확인하는 추가 필터가 있어 다음 줄이 그려질 때까지 추가 경고가 나타나지 않습니다. (나는 내 EA를 끝내는 일에 관여하고 있으며 지금은 당신을 대신할 수 없습니다.) 낮에는 일을 해야 합니다. 밤에는 잠을 자야 합니다. EA가 없으면 많은 거래를 할 수 없습니다. 내 우선 순위는 일부 수익성없는 거래가 열리지 않도록 필터로 지그재그 또는 변동성 인디를 사용하는 것입니다.
그 과정에서 추가 코드 를 추가하는 방법을 찾으면 알려 드리겠습니다.
최고의 소원, kevin07
스트래들 스크립트
나는 이 스크립트를 가지고 있지만 런던과 거래하도록 타이머를 설정하는 옵션을 갖고 싶습니다... 이것을 추가하는 것이 얼마나 어려울까요? ?
언제나처럼... 도와주셔서 감사합니다!!
#include
#include
#define LOOK_TO_BUY 1
#define LOOK_TO_SELL 2
extern int Magic_Number = 412625; // set this to a unique number if you intend to use the script simulataneously across many charts on the same account.
extern int UserDefinedSpread = 0; // set this to 0 if you want to use market spread. valid value is >= 0
extern double LotSize = 0.1;
extern int Slippage = 3;
extern int StopLoss = 25; // If you set StopLoss to 0, no stop loss level will be placed.
extern int TakeProfit = 0; // If you set TakeProfit to 0, no stop loss level will be placed.
extern bool OneCancelsOther = true; // This determines if you want the script to stay running and track, then delete the opposite pending order when an order has executed.
extern int NumOfCandles = 3; // This determines how many previous candles you want the EA to look for the High Lows. (buy and sell prices). valid value is > 0
extern int PositionalMarginPips = 40; // The distance excluding spread from the high lows for the opening prices. valid value is >= 0
extern int intervalseconds = 1.0; //The time interval for the script to check your trades. allows fractional seconds.
double BuyPrice = 0;
double SellPrice = 0;
int CustomSpread = 0;
bool KeepRunning = true;
int ticketToDelete = 0;
void GetPrices()
{
double HighestHigh = High[1];
if (NumOfCandles > 1)
{
for (int i=2; i<=NumOfCandles; i++)
{
if (High > HighestHigh)
{
HighestHigh = High;
}
}
}
BuyPrice = HighestHigh + (PositionalMarginPips * Point);
BuyPrice = NormalizeDouble(BuyPrice,Digits);
double LowestLow = Low[1];
if (NumOfCandles > 1)
{
for (i=2; i<=NumOfCandles; i++)
{
if (Low < LowestLow)
{
LowestLow = Low;
}
}
}
SellPrice = LowestLow - (PositionalMarginPips * Point);
BuyPrice = NormalizeDouble(BuyPrice,Digits);
}
void PlaceTrades()
{
double TakeProfitPrice, StopLossPrice;
if (TakeProfit==0)
{
TakeProfitPrice = 0;
}
else
{
TakeProfitPrice = BuyPrice + (TakeProfit * Point);
TakeProfitPrice = NormalizeDouble(TakeProfitPrice,Digits);
}
if (StopLoss == 0)
{
StopLossPrice = 0;
}
else
{
StopLossPrice = BuyPrice - (StopLoss * Point);
StopLossPrice = NormalizeDouble(StopLossPrice,Digits);
}
SendOrders (LOOK_TO_BUY, LotSize, BuyPrice, Slippage, StopLossPrice, TakeProfitPrice, "Straddle Buy", 0);
if (TakeProfit==0)
{
TakeProfitPrice = 0;
}
else
{
TakeProfitPrice = SellPrice - (TakeProfit * Point);
TakeProfitPrice = NormalizeDouble(TakeProfitPrice,Digits);
}
if (StopLoss == 0)
{
StopLossPrice = 0;
}
else
{
StopLossPrice = SellPrice + (StopLoss * Point);
StopLossPrice = NormalizeDouble(StopLossPrice,Digits);
}
SendOrders (LOOK_TO_SELL, LotSize, SellPrice, Slippage, StopLossPrice, TakeProfitPrice, "Straddle Sell", 0);
}
void SendOrders (int BuyOrSell, double LotSize, double PriceToOpen, double Slippage, double SL_Price, double TP_Price, string comments, datetime ExpirationTime)
{
int PositionType, ticket, errorType;
if (BuyOrSell == LOOK_TO_BUY)
{
if (PriceToOpen > Ask)
{
PositionType = OP_BUYSTOP;
}
if (PriceToOpen < Ask)
{
PositionType = OP_BUYLIMIT;
}
Print("Bid: "+Bid+" Ask: "+Ask+" | Opening Buy Order: "+Symbol()+", "+PositionType+", "+LotSize+", "+PriceToOpen+", "+Slippage+", "+SL_Price+", "+TP_Price+", "+comments+", "+Magic_Number+", "+ExpirationTime+", Green");
ticket=OrderSend(Symbol(),PositionType,LotSize,PriceToOpen,Slippage,SL_Price,TP_Price,comments,Magic_Number,ExpirationTime,CLR_NONE);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("BUY order opened : ",OrderOpenPrice());
}
}
else
{
errorType = GetLastError();
Print("Error opening BUY order : ", ErrorDescription(errorType));
}
}
if (BuyOrSell == LOOK_TO_SELL)
{
if (PriceToOpen < Bid)
{
PositionType = OP_SELLSTOP;
}
if (PriceToOpen > Bid)
{
PositionType = OP_SELLLIMIT;
}
Print("Bid: "+Bid+" Ask: "+Ask+" | Opening Sell Order: "+Symbol()+", "+PositionType+", "+LotSize+", "+PriceToOpen+", "+Slippage+", "+SL_Price+", "+TP_Price+", "+comments+", "+Magic_Number+", "+ExpirationTime+", Red");
ticket=OrderSend(Symbol(),PositionType,LotSize,PriceToOpen,Slippage,SL_Price,TP_Price,comments,Magic_Number,ExpirationTime,CLR_NONE);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("Sell order opened : ",OrderOpenPrice());
}
}
else
{
errorType = GetLastError();
Print("Error opening SELL order : ", ErrorDescription(errorType));
}
}
}
void GetSpread()
{
if (UserDefinedSpread <= 0)
{
CustomSpread = MarketInfo(Symbol(),MODE_SPREAD);
}
else
{
CustomSpread = UserDefinedSpread;
}
}
int GetNumberOfPending()
{
int count = 0;
int total = OrdersTotal();
if (total > 0)
{
for(int cnt=0;cnt<total;cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber() == Magic_Number)
{
if(OrderType() != OP_BUY && OrderType() != OP_SELL)
{
ticketToDelete = OrderTicket();
count++;
}
}
}
}
}
return (count);
}
void ManageTrades()
{
// If there's only one pending trade left, assume the other one is opened.
// So Delete this one.
if (GetNumberOfPending() == 1)
{
if (OrderDelete(ticketToDelete))
{
KeepRunning = false;
Alert ("Straddle script has ended");
}
}
}
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
GetSpread();
GetPrices();
PlaceTrades();
Alert ("Pending Trades Placed. Please Wait...");
int intervalMilliseconds = intervalseconds * 1000;
while (KeepRunning && OneCancelsOther)
{
Sleep(intervalMilliseconds);
ManageTrades();
}
//----
return(0);
}
//+------------------------------------------------------------------+
비지그재그 경고
안녕하세요 kevin07님,
이 지표에 대한 작업에 감사드립니다. 아마도 EA 코딩 중에 신호가 적절한 시간에 나타나 도록 하는 방법에 대한 아이디어가 있을 것입니다. 그 동안 여기 다른 누군가가 문제를 해결할 시간이 있을 수 있습니다. EA에 행운을 빕니다.
문안 인사,
톰
마티갈레 코드를 추가하도록 도와주세요.
저는 이 사이트를 사용하여 이 EA를 만들었습니다: 거래에 대한 간단한 규칙을 기반으로 하는 MetaTrader 4용 Expert Advisor Builder .
이 EA를 시도하여 결과를 확인할 수 있습니다. SL = 100, TP = 300, 후행 정지점 = 70으로 설정하고 EUR/USD H4에서 실행하십시오.
이 시스템을 거래하기 위해 마티갈레를 사용하도록 도와주시겠습니까?
100핍 = 계정 잔액의 2%가 되도록 금액을 사용하십시오.
거래 n-1 이 손실되면 이익이 있는 클로징 포지션까지 거래 n 의 두 배입니다.
매우 감사합니다!
저는 이 사이트를 사용하여 이 EA를 만들었습니다: 거래에 대한 간단한 규칙을 기반으로 하는 MetaTrader 4용 Expert Advisor Builder .
이 EA를 시도하여 결과를 볼 수 있습니다. SL = 100, TP = 300, 후행 정지점 = 70으로 설정하고 EUR/USD H4에서 실행하십시오.
이 시스템을 거래하기 위해 마티갈레를 사용하도록 도와주시겠습니까?
100핍 = 계정 잔액의 2%가 되도록 금액을 사용하십시오.
거래 n-1 이 손실되면 이익이 있는 클로징 포지션까지 거래 n 의 두 배입니다.
매우 감사합니다!약간의 시간을 할애할 가치가 있습니다, 친구들! 마티게일 코드 없이 거래한 결과입니다. 초기 보증금: 10000; 거래당 1랏. SL = 100; TP = 300; 후행 ST: 70; EUR/USD H4.
이 코드를 어떻게 단순화합니까?
와 b <= c의 차이 then trade = true, else false..
지금까지 누군가 나에게 이것을 코딩하는 더 짧은 방법을 보여줄 수 있다면 이것은 내가 만든 것입니다.
만약 ( a >= b)
{
if (a - b <= c ) trade = true;
if (a - b > c) trade = false;
}
만약 ( a < b)
{
if (b - a <= c ) trade = true;
if (b - > c) trade = false;
}
이것을 시도하십시오 (나는 c가 >= 0이라고 가정합니다)
문안 인사
믈라덴
이 코드를 어떻게 단순화합니까?
와 b <= c의 차이 then trade = true, else false..
지금까지 누군가 나에게 이것을 코딩하는 더 짧은 방법을 보여줄 수 있다면 이것은 내가 만든 것입니다.
만약 ( a >= b)
{
if (a - b <= c ) trade = true;
if (a - b > c) trade = false;
}
만약 ( a < b)
{
if (b - a <= c ) trade = true;
if (b - > c) trade = false;
}이것을 시도하십시오 (나는 c가 >= 0이라고 가정합니다)
문안 인사
믈라덴고마워.. 전에도 이런 걸 찾고 있었는데.. 고마워..
NonLagZigZag_Signal_v2 경고 테스트
안녕하세요 kevin07님,
감사합니다 ...아마도 ... 적절한 시간에 신호를 표시하는 방법에 대한 아이디어가 있을 것입니다...
문안 인사,
톰톰,
나는 이 지그재그 인디로 돌아가 중간 경고를 걸러낼 수 있었다. 나는 이것을 즉시 보내고 그것을 테스트하지 않았습니다. 경고와 관련된 문제를 발견하면 알려주십시오.
감사해요
케빈07